diff --git a/.gitea/workflows/main.yml b/.gitea/workflows/main.yml index 166397e..a6a385d 100644 --- a/.gitea/workflows/main.yml +++ b/.gitea/workflows/main.yml @@ -1,5 +1,10 @@ -name: GKE Auto-Deploy -on: [push] +name: Multi-Env Deploy + +on: + push: + branches: + - main + - develop env: PROJECT_ID: deployments-485614 @@ -7,10 +12,7 @@ env: REPO_NAME: gitea-repo CLUSTER_NAME: gitea-cluster CLUSTER_ZONE: europe-west1-b - - # --- CONFIGURAZIONE PROGETTO --- - APP_NAME: varco # Nome dell'applicazione - # ------------------------------- + APP_NAME: varco # change this to your app name jobs: build-and-deploy: @@ -19,6 +21,18 @@ jobs: - name: Checkout uses: actions/checkout@v3 + - name: Set Environment Variables + run: | + if [[ "${{ gitea.ref }}" == "refs/heads/main" ]]; then + echo "Stiamo andando in PRODUZIONE" + echo "TARGET_NS=default" >> $GITHUB_ENV + echo "BASE_DOMAIN=prod.bytebuilder.it" >> $GITHUB_ENV + else + echo "Stiamo andando in STAGING" + echo "TARGET_NS=staging" >> $GITHUB_ENV + echo "BASE_DOMAIN=demo.bytebuilder.it" >> $GITHUB_ENV + fi + - name: Google Auth uses: google-github-actions/auth@v1 with: @@ -27,7 +41,6 @@ jobs: - 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 @@ -35,34 +48,24 @@ jobs: - 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 + # Usiamo il namespace come parte del tag per evitare confusione + IMAGE_TAG=${{ env.REGION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.REPO_NAME }}/${{ env.APP_NAME }}:${{ env.TARGET_NS }}-${{ gitea.sha }} - # 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 }} + # Salviamo il nome completo per il passaggio successivo + echo "FULL_IMAGE_NAME=$IMAGE_TAG" >> $GITHUB_ENV 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' + # Sostituisce APP_NAME, BASE_DOMAIN e FULL_IMAGE_NAME nel template 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 \ No newline at end of file + echo "Deploying to namespace: ${{ env.TARGET_NS }}" + + # 3. APPLICA AL NAMESPACE GIUSTO + kubectl apply -f final-deploy.yaml -n ${{ env.TARGET_NS }} \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 679fa34..619c4e6 100644 --- a/src/App.vue +++ b/src/App.vue @@ -5,6 +5,7 @@

Questa è una demo di Vue.js

Stai utilizzando Vue 3 con Vite

+

Deploy di produzione!