Skip to content

fix(ci): cmd package coverage at 18% — Go CLI Coverage gate fails on every workflow-touching PR #144

@izo

Description

@izo

Symptôme

Job Go CLI (ubuntu-latest) et Go CLI (macos-latest) échouent à l'étape "Coverage gate" sur tout PR qui touche .github/workflows/** (et donc déclenche test.yml).

Repro la plus récente : run #25461947698 sur PR #143.

Cause

Coverage globale Go < 70% (gate défini dans .github/workflows/test.yml:138).

Coverage par package mesurée localement sur main (681753e) :

Package Coverage
cmd 18.0% ← coupable principal
internal/installer 58.9%
internal/registry 60.7%
internal/config 70.4%
tui 73.1%

Le package cmd a beaucoup grossi récemment sans tests proportionnels :

Impact

  • ❌ Tout PR qui modifie .github/workflows/** voit le job rouge (faux positif)
  • ❌ Push direct sur main qui touche .github/workflows/** ou framework/cli/** casse aussi
  • ⚠️ La régression est passée inaperçue car la PR feat(shot-scraper): intégrer shot-scraper CLI comme standard navigateur ulk #141 ne touchait pas .github/workflows/** (donc le path filter de test.yml ne l'a pas déclenchée sur la PR elle-même — seulement au merge sur main, où personne ne regarde)

Options de fix

  1. Augmenter la couverture cmd (préférable long terme) — ajouter tests unitaires pour install.go (--wizard, --fast, dispatch flags), selfupdate.go, migrate.go. Cible : 50%+ pour passer le total ≥ 70%.
  2. Baisser temporairement le seuil — passer le gate à 50% avec une issue de tracking pour remonter à 70%. Quick fix, perd du signal.
  3. Exclure cmd du gatego test -coverpkg=./internal/...,./tui/... pour ne mesurer que les packages internes. Triche un peu, mais reflète le fait que cmd est principalement glue Cobra.

Recommandation : option 1 (vrais tests) si on a la bande passante, sinon option 2 avec issue de suivi.

Détection

Constatée par #143 (PR Swift macOS qui ne touche aucun fichier Go). Mon PR n'introduit pas la régression — elle existait déjà sur main et n'apparaît que parce que mes changes activent le path filter .github/workflows/** de test.yml.

Références

https://claude.ai/code/session_01TyhPjizanX1g8xSQ6chwTu

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcigo-cli

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions