Pular para o conteúdo

GitHub Actions

O pipeline na ordem que economiza tempo — e o erro de análise anotado na linha do PR.

dataforge devops ci github escreve .github/workflows/ci.yml: formato, análise estática, lint e testes, numa matriz de Python, com um push novo cancelando o anterior. A ordem é a do custo: o check acha nome errado e ciclo de import em menos de um segundo, e falhar ali poupa os minutos da suíte.

bash
dataforge devops ci github
git add .github/workflows/ci.yml && git commit -m "CI"

O erro na linha do PR#

dataforge check --formato=github troca o desenho do terminal por anotações do Actions. Com elas o erro aparece na aba Files changed, na linha exata — e não só no log do job, que ninguém abre enquanto o resto do PR está verde.

text
$ dataforge check src/ --formato=github
::error file=src/pedido.df,line=14,col=5,title=arity::Action 'total' takes 1 argument(s) but 2 were given%0Asugestão: Chame como total(itens)
::warning file=src/pedido.df,line=30,col=9,title=escrita-concorrente::…
DecisãoPorque
o nível segue a gravidadeerro vira ::error, aviso vira ::warning — o PR distingue os dois
o title é o código do diagnósticoarity, undefined-name: é o que se procura e o que se silencia com // df: permitir
a sugestão vai juntoa correção aparece na mesma caixa que o erro
a mensagem é escapadaum % ou uma quebra de linha cortaria a anotação no meio
o código de saída não mudao job continua reprovando com erro, com ou sem anotação

O que o workflow gerado já faz#

No workflowSem ele
concurrency com cancel-in-progressdois commits num minuto rodam a suíte duas vezes inteiras
matriz 3.10 e 3.13o que quebra na versão mínima só aparece com o primeiro usuário dela
fail-fast: falsea primeira versão que falha cancela a outra, e não se sabe se é geral
o job da imagem confere id -ua imagem que roda como root chega ao registro

Continue em Actions na linguagem.