- Reverte cd.yml pra Cloud Build (gcloud builds submit). Kaniko da PR #5
quebra porque a imagem kaniko:debug não tem /bin/sleep no PATH e o
act-runner usa entrypoint=["/bin/sleep","10800"] no container do job.
- Bump node:18 -> node:20 no stage do webcomponent (Vite >= 5 exige Node 20+).
Pré-requisito pro Cloud Build funcionar: SA gitea-cd precisa de
roles/cloudbuild.builds.editor + roles/serviceusage.serviceUsageConsumer.
Job 1 (build) roda dentro da imagem gcr.io/kaniko-project/executor:debug
e usa _json_key auth do AR. Job 2 (deploy) é runner default + kubectl
e depende do build via 'needs'.
Step container do act-runner não consegue conectar no docker daemon
(dind sidecar usa tcp://localhost:2375 mas o step roda em network
isolada). Cloud Build resolve sem precisar configurar networking do
runner — bonus: build em VM linux/amd64 sem cross-compile.
Em algumas versões do Gitea Actions, hashFiles avalia para string vazia
mesmo com o arquivo presente, fazendo a job ser marcada como 'skipped'
silenciosamente. O Dockerfile é requisito do CD nesse repo, então a
condicional não agrega segurança.