CI/CD e deploy
Integração contínua (GitHub Actions)
Os projetos rodam verificações automáticas a cada push. No Syens, por exemplo, há workflows separados para:
- RuboCop (estilo e qualidade do Ruby).
- ESLint (estilo do JavaScript).
- Webpack build (garante que o front empacota).
- Tests (a suíte de testes).
Mantenha os checks verdes antes de pedir review. Padronização de estilo é verificada por RuboCop (Ruby) e ESLint (JS) — rode-os localmente antes do push.
Empacotamento (Docker)
Os sistemas são empacotados em imagens Docker. É comum haver um Dockerfile
para produção e um Dockerfile.dev para desenvolvimento, além de
docker-compose.yml para subir o ambiente local (app + PostgreSQL + Redis).
Deploy das aplicações
- Backends Rails vão para o Amazon ECR e rodam na AWS. Exemplo do fluxo de imagem da Chamada Escolar:
# (passos de shell, ilustrativos)
# docker build -> docker tag (ECR) -> docker push
# a imagem publicada no ECR é então implantada no ambiente AWS
- Fronts estáticos (como o
cpe-inscricao) são publicados na Cloudflare. - Esta documentação (Docusaurus) também é publicada na Cloudflare — veja Deploy — Cloudflare.
Infraestrutura como código (InfraSpawn)
A infraestrutura AWS é gerida pelo InfraSpawn, uma plataforma interna (Go + React/Vite) que aplica Terraform e acompanha a fila de deploys.
- Cada sistema tem sua definição de infraestrutura (por exemplo,
syens.tf,cpe.tf), sobre uma base de rede compartilhada (vpc-base.tf). - Mudanças de infraestrutura passam pelo Terraform (versionado), não por alterações manuais no console da AWS.
Assim, o ciclo completo fica: código no GitHub → CI valida → imagem no ECR / estático na Cloudflare → infraestrutura provisionada pelo Terraform via InfraSpawn.