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>
66 lines
1.8 KiB
YAML
66 lines
1.8 KiB
YAML
# Build + push + deploy do serviço documents, executado no Google Cloud Build.
|
|
# Motivo: o runner do Gitea Actions não tem Docker (`docker: command not found`).
|
|
# O cd.yml só dispara `gcloud builds submit`.
|
|
steps:
|
|
# 1) Build da imagem (NPM_TOKEN é build-arg: as libs @clubpetrodev/* são privadas)
|
|
- name: 'gcr.io/cloud-builders/docker'
|
|
id: build
|
|
args:
|
|
- build
|
|
- --platform=linux/amd64
|
|
- -t
|
|
- '${_IMAGE}'
|
|
- --build-arg=NPM_TOKEN=${_NPM_TOKEN}
|
|
- .
|
|
|
|
# 2) Push para o Artifact Registry
|
|
- name: 'gcr.io/cloud-builders/docker'
|
|
id: push
|
|
args: [push, '${_IMAGE}']
|
|
|
|
# 3) Deploy no GKE hml2
|
|
- name: 'gcr.io/cloud-builders/kubectl'
|
|
id: deploy
|
|
args:
|
|
- set
|
|
- image
|
|
- deployment/documents-deployment
|
|
- 'documents=${_IMAGE}'
|
|
- -n
|
|
- '${_K8S_NAMESPACE}'
|
|
env:
|
|
- 'CLOUDSDK_COMPUTE_REGION=${_GKE_REGION}'
|
|
- 'CLOUDSDK_CONTAINER_CLUSTER=${_GKE_CLUSTER}'
|
|
- 'CLOUDSDK_CORE_PROJECT=${_GCP_PROJECT}'
|
|
|
|
- name: 'gcr.io/cloud-builders/kubectl'
|
|
id: rollout
|
|
args:
|
|
- rollout
|
|
- status
|
|
- deployment/documents-deployment
|
|
- -n
|
|
- '${_K8S_NAMESPACE}'
|
|
- '--timeout=180s'
|
|
env:
|
|
- 'CLOUDSDK_COMPUTE_REGION=${_GKE_REGION}'
|
|
- 'CLOUDSDK_CONTAINER_CLUSTER=${_GKE_CLUSTER}'
|
|
- 'CLOUDSDK_CORE_PROJECT=${_GCP_PROJECT}'
|
|
|
|
# O default do Cloud Build é 10min; `yarn install` + `nest build` a frio passa disso.
|
|
timeout: 1800s
|
|
|
|
options:
|
|
substitution_option: 'ALLOW_LOOSE'
|
|
# LEGACY em vez de CLOUD_LOGGING_ONLY: com CLOUD_LOGGING_ONLY o
|
|
# `gcloud builds submit` não mostra o log e a falha fica cega.
|
|
logging: LEGACY
|
|
|
|
substitutions:
|
|
_IMAGE: ''
|
|
_NPM_TOKEN: ''
|
|
_GKE_CLUSTER: ''
|
|
_GKE_REGION: ''
|
|
_GCP_PROJECT: ''
|
|
_K8S_NAMESPACE: 'default'
|