prometeu-runtime/discussion/workflow/agendas/AGD-0017-jenkinsfile-correction.md
bQUARKz 3453494341
Some checks are pending
Test / Build
Intrepid/Prometeu/Runtime/pipeline/head This commit looks good
dev/jenkinsfile (#10)
Reviewed-on: #10
Co-authored-by: bQUARKz <bquarkz@gmail.com>
Co-committed-by: bQUARKz <bquarkz@gmail.com>
2026-04-08 07:39:33 +00:00

2.8 KiB

id ticket title status created resolved decision tags
AGD-0017 jenkinsfile-correction Agenda - Jenkinsfile Correction and Relocation open 2026-04-07
ci
jenkins
infrastructure

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

  1. Localização Não Convencional: O Jenkinsfile na pasta files/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.
  2. Desalinhamento de Comandos: O Jenkinsfile atual executa comandos de forma ligeiramente diferente do Makefile e do GitHub Actions (ex: cargo fmt --all vs cargo fmt -- --check).
  3. 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 Jenkinsfile deve idealmente delegar para o Makefile para 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

  1. Manter como está: Apenas corrigir o conteúdo no local atual.
  2. Mover para a raiz e atualizar: Seguir o padrão de mercado movendo para a raiz e alinhando o conteúdo com o Makefile.
  3. 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 o Makefile?

Criterio para Encerrar

  • O Jenkinsfile estar 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.