Reviewed-on: #10 Co-authored-by: bQUARKz <bquarkz@gmail.com> Co-committed-by: bQUARKz <bquarkz@gmail.com>
2.8 KiB
2.8 KiB
| id | ticket | title | status | created | resolved | decision | tags | |||
|---|---|---|---|---|---|---|---|---|---|---|
| AGD-0017 | jenkinsfile-correction | Agenda - Jenkinsfile Correction and Relocation | open | 2026-04-07 |
|
Agenda - Jenkinsfile Correction and Relocation
Contexto
O projeto possui um Jenkinsfile localizado em files/config/Jenkinsfile. O conteúdo deste arquivo está básico e utiliza uma versão do Rust (1.77) que pode não ser a ideal em comparação com o resto do projeto que usa a versão estável definida em rust-toolchain.toml. Além disso, o pipeline de CI principal do projeto está definido no GitHub Actions e o comportamento esperado de CI (formatação, clippy, testes) também está documentado no Makefile.
Problema
- Localização Não Convencional: O
Jenkinsfilena pastafiles/config/dificulta a descoberta e manutenção, além de fugir do padrão do Jenkins de buscar o arquivo na raiz do repositório. - Desalinhamento de Comandos: O
Jenkinsfileatual executa comandos de forma ligeiramente diferente doMakefilee do GitHub Actions (ex:cargo fmt --allvscargo fmt -- --check). - Falta de Padronização: Não há garantias de que o pipeline do Jenkins execute as mesmas verificações de qualidade que o pipeline do GitHub.
Pontos Críticos
- Sincronia com o Makefile: O
Jenkinsfiledeve idealmente delegar para oMakefilepara evitar duplicidade de lógica de comandos. - Ambiente Docker: A imagem Docker utilizada deve ser compatível com as ferramentas necessárias (ex:
make,cargo). - Workspace Completo: Deve garantir que todas as crates do workspace sejam testadas.
Opções
- Manter como está: Apenas corrigir o conteúdo no local atual.
- Mover para a raiz e atualizar: Seguir o padrão de mercado movendo para a raiz e alinhando o conteúdo com o
Makefile. - Remover o Jenkinsfile: Se o projeto foca apenas no GitHub Actions (como sugere o
dist-workspace.toml), o Jenkinsfile pode ser redundante. Contudo, a solicitação explícita foi para corrigi-lo.
Sugestão / Recomendação
Opção 2: Mover o Jenkinsfile para a raiz do projeto e atualizar seu conteúdo para utilizar o comando make ci definido no Makefile. Isso garante consistência entre o ambiente local, o Jenkins e o GitHub Actions.
Perguntas em Aberto
- Existe alguma restrição técnica no ambiente Jenkins deste projeto que exija o arquivo em
files/config/? (Assumindo que não, dada a solicitação de "corrigir"). - A imagem Docker
rust:stable(ou similar) possui as dependências necessárias para rodar oMakefile?
Criterio para Encerrar
- O
Jenkinsfileestar na raiz do projeto. - O conteúdo refletir as mesmas etapas de validação do resto do projeto (fmt, clippy, test).
- O arquivo antigo em
files/config/ter sido removido.