ci: builda as 3 imagens em paralelo e cacheia o binario do Trivy #64

Merged
jhony75 merged 1 commit from ci-parallel-image-builds-and-trivy-cache into develop 2026-09-10 21:08:53 -03:00
Owner

Pedido do usuario, depois de aumentar a capacidade do runner (confirmado: Backend e Frontend agora rodam de verdade em paralelo, mesmo segundo de inicio).

Duas mudancas em "Build e publicacao de imagens":

  1. As 3 imagens (backend/frontend/docs) buildam em paralelo -- nao dependem uma da outra, mas rodavam em sequencia num script so. Agora cada docker build roda em subshell de fundo, log de cada uma capturado num arquivo e impresso em grupo separado no final (pra nao ficar tudo intercalado), step falha se qualquer uma falhar.

  2. Binario do Trivy cacheado por data -- era baixado e instalado via curl | sh a cada push, todo dia, mesmo sem mudanca nenhuma. Agora usa a mesma cadencia ja existente pro cache do banco de vulnerabilidade (por data), so reinstala se o cache nao tiver o binario.

Investigado e descartado: cache de camada Docker entre execucoes -- ja confirmei olhando o log de um build real que pip install/npm ci ja aparecem como CACHED, o daemon do runner ja mantem isso por conta propria. Nada a fazer ali.

Verificacao: sintaxe YAML validada (python -c "import yaml; yaml.safe_load(...)"), sintaxe bash de cada bloco extraido e validada com bash -n. Sem teste automatizado dedicado pra workflow (nao ha suite pra isso no repo) -- a validacao real e a propria execucao deste PR no CI.

Pedido do usuario, depois de aumentar a capacidade do runner (confirmado: Backend e Frontend agora rodam de verdade em paralelo, mesmo segundo de inicio). Duas mudancas em "Build e publicacao de imagens": 1. **As 3 imagens (backend/frontend/docs) buildam em paralelo** -- nao dependem uma da outra, mas rodavam em sequencia num script so. Agora cada `docker build` roda em subshell de fundo, log de cada uma capturado num arquivo e impresso em grupo separado no final (pra nao ficar tudo intercalado), step falha se qualquer uma falhar. 2. **Binario do Trivy cacheado por data** -- era baixado e instalado via `curl | sh` a cada push, todo dia, mesmo sem mudanca nenhuma. Agora usa a mesma cadencia ja existente pro cache do banco de vulnerabilidade (por data), so reinstala se o cache nao tiver o binario. **Investigado e descartado**: cache de camada Docker entre execucoes -- ja confirmei olhando o log de um build real que `pip install`/`npm ci` ja aparecem como `CACHED`, o daemon do runner ja mantem isso por conta propria. Nada a fazer ali. Verificacao: sintaxe YAML validada (`python -c "import yaml; yaml.safe_load(...)"`), sintaxe bash de cada bloco extraido e validada com `bash -n`. Sem teste automatizado dedicado pra workflow (nao ha suite pra isso no repo) -- a validacao real e a propria execucao deste PR no CI.
ci: builda as 3 imagens em paralelo e cacheia o binario do Trivy
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 9s
EEG QA CI / Backend (pull_request) Successful in 1m38s
EEG QA CI / Frontend (pull_request) Successful in 3m20s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 1m16s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
d3fb5ee3b5
"Build application images" buildava backend/frontend/docs em
sequencia, apesar de nenhuma depender da outra -- agora rodam em
paralelo (subshells + wait), log de cada uma capturado e impresso em
grupo separado no final, step falha se qualquer uma falhar.

O binario do Trivy era reinstalado via curl a cada push, todo dia,
mesmo sem mudanca nenhuma -- agora cacheado por data (mesma cadencia
ja usada pro banco de vulnerabilidade), so reinstala se o cache nao
tiver o binario.

Nao inclui: cache de camada docker entre execucoes -- confirmado ao
investigar que ja funciona por conta propria (pip install/npm ci
aparecem como CACHED no log real de um build), nada a fazer ali.
jhony75 merged commit ebd0d4fb47 into develop 2026-09-10 21:08:53 -03:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jhony75/eeg-qa!64
No description provided.