ci: make lint and type checks fail the build - #5
Open
Guajir0-code wants to merge 3 commits into
Open
Conversation
Mechanical, produced by `vendor/bin/pint`. No behaviour change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Mechanical, produced by `npm run format`. Mostly line wrapping. The organize-imports plugin also dropped an unused getPortugueseMonth import in TagPosts.vue, which was the single outstanding eslint error. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The quality job ran pint, prettier --write and eslint --fix. All three rewrite the checkout and exit 0, and the auto-commit step that would have pushed the result is commented out, so the job reported success no matter what it found. Two files violated pint and fifteen violated prettier on main while the badge stayed green. Swap them for the reporting variants, add a vue-tsc gate (vue-tsc was already a devDependency but was never invoked), and install with npm ci so the lockfile is honoured. contents: write is no longer needed without the auto-commit step. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problema
O workflow
linterpassa independentemente do que encontra. Ele roda as variantes que reescrevem os arquivos, e essas sempre saem com código 0.Evidência
As correções são aplicadas dentro do runner e descartadas quando ele é destruído — o passo que faria o commit está comentado:
Ou seja: o job nunca reprova por estilo e nada do que ele corrige chega ao repositório.
O estado real de
mainhoje, medido rodando as variantes de verificação:mainpint --testprettier --checkeslintTagPosts.vue)vue-tscTudo isso com o badge verde.
Solução
1. Trocar por variantes que reportam
format:checkjá existia nopackage.jsone nunca era chamado.lint:checketype-checksão novos:vue-tscjá estava nas devDependencies desde o início do projeto, mas nunca foi executado por nenhum script nem pelo CI.2. Instalar Node de forma reprodutível
O job não tinha
actions/setup-node— dependia do Node que viesse na imagem — e usavanpm install, que pode resolver versões diferentes do lockfile. Agora usasetup-nodecom cache enpm ci.3. Reduzir a permissão do token
permissions: contents: writeexistia para o passo de auto-commit. Sem ele,contents: readbasta.4. Deixar
mainem conformidadeUm gate estrito sobre uma base que não passa deixa o repositório vermelho no primeiro merge. Os dois primeiros commits deste PR aplicam os formatadores:
style: apply pint to app/vendor/bin/pintstyle: apply prettier to resources/npm run formatAmbos são mecânicos e revisáveis por commit. O churn do Prettier é menor do que a contagem de arquivos sugere: 97 inserções, 91 remoções, quase tudo quebra de linha.
O erro do eslint foi resolvido dentro do commit do Prettier: o plugin
prettier-plugin-organize-imports, que já estava configurado, removeu sozinho ogetPortugueseMonthnão utilizado emTagPosts.vue.Como validar
Rodando exatamente os quatro comandos do workflow:
Os quatro passam nesta branch. Verificado também que reprovam de verdade: contra
main, os três primeiros falham.Impacto
npm run formatevendor/bin/pintcontinuam disponíveis para corrigir localmente.Ordem de merge sugerida
Vale mesclar este PR cedo na série. Enquanto
maintiver as violações atuais, os demais PRs aparecem com CI vermelho por um motivo que não é deles.Fora de escopo
testsnão foi alterado. Ele falha hoje, mas por falta das tabelaswp_*no ambiente de teste, o que é resolvido no PR de infraestrutura de testes. Misturar as duas coisas aqui tornaria este PR mais difícil de revisar.pint,eslinteprettiercontinuam exatamente como estavam; este PR só passa a executá-las de um jeito que importa.