Reviewed-on: #10 Co-authored-by: bQUARKz <bquarkz@gmail.com> Co-committed-by: bQUARKz <bquarkz@gmail.com>
1.9 KiB
1.9 KiB
| id | discussion | title | status | created | resolved | tags | ||
|---|---|---|---|---|---|---|---|---|
| DEC-0002 | DSC-0019 | Decision - Jenkinsfile Location and Strategy | accepted | 2026-04-07 |
|
Decision - Jenkinsfile Location and Strategy
Status
Accepted.
Contexto
O arquivo Jenkinsfile estava localizado em files/config/Jenkinsfile, o que dificultava a manutenção e automação via Jenkins (que por padrão busca na raiz). Além disso, o conteúdo estava divergente das definições de CI do Makefile e do GitHub Actions.
Decisao
- Mover o
Jenkinsfilepara a raiz do repositório. - Atualizar o conteúdo do
Jenkinsfilepara utilizar uma imagem Dockerrust:stable(conformerust-toolchain.toml). - Delegar a execução do pipeline para o comando
make cidefinido noMakefile. - Remover o arquivo residual em
files/config/Jenkinsfile.
Rationale
- Padronização: Seguir o padrão de mercado de manter o arquivo de configuração de pipeline na raiz.
- DRY (Don't Repeat Yourself): Ao usar o
Makefile, evitamos duplicar os comandos defmt,clippyetestem múltiplos lugares (Makefile, GHA e Jenkins). - Consistência: Garante que o desenvolvedor rodando
make cilocalmente tenha o mesmo resultado que o servidor de CI.
Invariantes / Contrato
- O comando
make cideve sempre englobar as verificações mínimas de qualidade (format, clippy, tests). - O
Jenkinsfiledeve sempre usar um ambiente que possuamakeerust.
Impactos
- Jenkins: A configuração do job no Jenkins pode precisar ser atualizada se o "Script Path" estiver explicitamente apontando para
files/config/Jenkinsfile. (Geralmente aponta paraJenkinsfilena raiz). - Manutenção: Facilita a manutenção, pois mudanças no processo de build só precisam ser feitas no
Makefile.
Referencias
.github/workflows/ci.ymlMakefilerust-toolchain.toml
Propagacao Necessaria
- N/A.