Este documento detalha as regras de automação, proteção de branches e o fluxo de trabalho configurado neste repositório.
Para garantir a integridade do código, o repositório segue as seguintes diretrizes:
- Branch Default: Definida como
develop. Todo o desenvolvimento deve partir desta branch. - Proteção de Branches (Rulesets):
- Branches Protegidas:
masteredevelop. - Bloqueio de Push Direto: Proibido enviar código diretamente para estas branches via terminal. Todo código deve ser submetido via Pull Request.
- Status Checks: O merge só é liberado se os testes de Go e o Build do Docker forem concluídos com sucesso.
- Branches Protegidas:
- Permissões de Actions: Configurado para
Read and Write permissionspara permitir a publicação de imagens e criação automática de PRs de sincronia.
O pipeline de Integração e Entrega Contínua (ci.yml) executa três pilares de validação:
| Destino (Base) | Origem Permitida (Head) | Objetivo |
|---|---|---|
| master | release/*, hotfix/* |
Produção. Apenas versões estáveis ou correções críticas. |
| develop | feature/*, bugfix/*, release/*, hotfix/* |
Integração. Base para o desenvolvimento diário. |
go mod tidy: Validação de integridade das dependências.go test -v ./...: Execução de testes unitários. Falhas neste estágio bloqueiam o merge.
O fluxo de trabalho do Docker é dividido em dois níveis de permissão:
- Validação (Qualquer Branch/PR): O CI executa um Smoke Test para garantir que o
Dockerfilecompila corretamente. Nenhuma imagem é salva ou publicada neste estágio. - Entrega (Exclusivo Master): Apenas quando ocorre um push ou merge na branch master, o CI gera a imagem final e realiza o push para o GitHub Container Registry (GHCR).
As imagens oficiais são geradas e armazenadas no GitHub Packages apenas após o merge em produção (master). Para baixar a versão estável mais recente:
docker pull ghcr.io/${{ github.repository }}:latest