name: GKE Deploy on: [push] env: PROJECT_ID: deployments-485614 REGION: europe-west1 REPO_NAME: gitea-repo # Assicurati di aver creato questo repo su Artifact Registry! IMAGE_NAME: demo-app CLUSTER_NAME: gitea-cluster CLUSTER_ZONE: europe-west1-b jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 # 1. Login su Google Cloud - name: Google Auth uses: google-github-actions/auth@v1 with: credentials_json: ${{ secrets.GCP_SA_KEY }} # 2. Setup Strumenti Google - name: Set up Cloud SDK uses: google-github-actions/setup-gcloud@v1 with: install_components: 'gke-gcloud-auth-plugin,kubectl' # 3. Configura Docker per Google - name: Docker Auth run: gcloud auth configure-docker ${{ env.REGION }}-docker.pkg.dev # 4. Build e Push dell'immagine - name: Build and Push run: | # Costruiamo il tag completo dell'immagine IMAGE_TAG=${{ env.REGION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.REPO_NAME }}/${{ env.IMAGE_NAME }}:${{ gitea.sha }} # Costruiamo e carichiamo docker build -t $IMAGE_TAG . docker push $IMAGE_TAG # 5. Aggiorna Kubernetes - name: Deploy to GKE run: | gcloud container clusters get-credentials ${{ env.CLUSTER_NAME }} --zone ${{ env.CLUSTER_ZONE }} # Aggiorna l'immagine nel deployment esistente kubectl set image deployment/demo-app demo-container=${{ env.REGION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.REPO_NAME }}/${{ env.IMAGE_NAME }}:${{ gitea.sha }}