Files
testvue/.gitea/workflows/main.yml
Carmine Savino 32314842a4
All checks were successful
GKE Auto-Deploy / build-and-deploy (push) Successful in 36s
Aggiorna la configurazione di deployment per utilizzare ClusterIP e aggiungi Ingress per la gestione SSL
2026-01-28 21:44:19 +01:00

68 lines
2.5 KiB
YAML

name: GKE Auto-Deploy
on: [push]
env:
PROJECT_ID: deployments-485614
REGION: europe-west1
REPO_NAME: gitea-repo
CLUSTER_NAME: gitea-cluster
CLUSTER_ZONE: europe-west1-b
# --- CONFIGURAZIONE PROGETTO ---
APP_NAME: varco # Nome dell'applicazione
# -------------------------------
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Google Auth
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v1
with:
# Installiamo anche 'gettext-base' che contiene il comando envsubst (se manca)
install_components: 'gke-gcloud-auth-plugin,kubectl'
- name: Docker Auth
run: gcloud auth configure-docker ${{ env.REGION }}-docker.pkg.dev
- name: Build and Push
run: |
# Costruiamo il nome completo dell'immagine
# Lo esportiamo in GITHUB_ENV così diventa disponibile agli step successivi
echo "FULL_IMAGE_NAME=${{ env.REGION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.REPO_NAME }}/${{ env.APP_NAME }}:${{ gitea.sha }}" >> $GITHUB_ENV
# Nota: uso la variabile appena creata leggendola dall'ambiente corrente
IMAGE_TAG=${{ env.REGION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.REPO_NAME }}/${{ env.APP_NAME }}:${{ gitea.sha }}
docker build -t $IMAGE_TAG .
docker push $IMAGE_TAG
# --- PARTE NUOVA: TEMPLATING E APPLY ---
- name: Deploy to GKE
run: |
gcloud container clusters get-credentials ${{ env.CLUSTER_NAME }} --zone ${{ env.CLUSTER_ZONE }}
# 1. Installiamo envsubst (se non c'è già nell'immagine, di solito c'è ma per sicurezza)
sudo apt-get update && sudo apt-get install -y gettext-base
# 2. Sostituzione variabili
# Legge k8s/deployment.yaml, sostituisce ${APP_NAME} e ${FULL_IMAGE_NAME}
# Scrive il risultato in un file temporaneo 'final-deploy.yaml'
envsubst < k8s/deployment.yaml > final-deploy.yaml
# (Opzionale) Stampiamo il file per debug
echo "--- FILE YAML GENERATO ---"
cat final-deploy.yaml
echo "--------------------------"
# 3. Applica a Kubernetes
# Se il deployment non esiste, lo crea. Se esiste, lo aggiorna.
kubectl apply -f final-deploy.yaml