Espelho do routines: NestJS 10 + Fastify + TypeORM, modulos catalog (override por UF), document (versoes + storage GCS), compliance (mesmo score do painel), alerts (regua de vencimento, envio e v1.2) e analise plugavel (KeywordAnalyzer -> OCR/LLM). 38 testes. Deploy aguarda banco 'documents' e secrets no hml2 — por isso o [skip ci] no bootstrap. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
56 lines
1.9 KiB
YAML
56 lines
1.9 KiB
YAML
name: CD
|
|
|
|
on:
|
|
push:
|
|
branches: [master, main]
|
|
pull_request:
|
|
|
|
env:
|
|
IMAGE_BASE: ${{ secrets.AR_LOCATION }}-docker.pkg.dev/${{ secrets.GCP_PROJECT }}/${{ secrets.AR_REPO }}
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
# Sem `if: hashFiles(...)` no nível do job: hashFiles é avaliado ANTES do
|
|
# checkout (workspace vazio) → condição sempre falsa → job pulado com status
|
|
# success. Foi o que congelou o deploy do frontend por semanas.
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Auth GCP
|
|
uses: google-github-actions/auth@v2
|
|
with:
|
|
credentials_json: ${{ secrets.GCP_SA_KEY }}
|
|
|
|
- name: Setup gcloud
|
|
uses: google-github-actions/setup-gcloud@v2
|
|
with:
|
|
project_id: ${{ secrets.GCP_PROJECT }}
|
|
|
|
# Build + push + deploy rodam no Google Cloud Build: o runner do Gitea não
|
|
# tem daemon Docker. Ver cloudbuild.yaml.
|
|
- name: Build + deploy via Cloud Build (apenas em push pra master/main)
|
|
if: github.event_name == 'push'
|
|
env:
|
|
IMG_TAG: lab-${{ gitea.run_number }}
|
|
GKE_CLUSTER: ${{ secrets.GKE_CLUSTER }}
|
|
GKE_REGION: ${{ secrets.GKE_REGION }}
|
|
GCP_PROJECT: ${{ secrets.GCP_PROJECT }}
|
|
K8S_NAMESPACE: ${{ secrets.K8S_NAMESPACE }}
|
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
run: |
|
|
set -euo pipefail
|
|
IMG="${IMAGE_BASE}/${{ gitea.event.repository.name }}:${IMG_TAG}"
|
|
|
|
SUBS="_IMAGE=${IMG}"
|
|
SUBS="${SUBS},_NPM_TOKEN=${NPM_TOKEN}"
|
|
SUBS="${SUBS},_GKE_CLUSTER=${GKE_CLUSTER}"
|
|
SUBS="${SUBS},_GKE_REGION=${GKE_REGION}"
|
|
SUBS="${SUBS},_GCP_PROJECT=${GCP_PROJECT}"
|
|
SUBS="${SUBS},_K8S_NAMESPACE=${K8S_NAMESPACE}"
|
|
|
|
gcloud builds submit --project "${GCP_PROJECT}" \
|
|
--config cloudbuild.yaml \
|
|
--substitutions="${SUBS}" \
|
|
.
|