Skip to content

fix(ci): stop coverage badge git 400 from breaking the pipeline#194

Merged
JairajJangle merged 1 commit into
mainfrom
fix/ci-coverage-badge-git-400
Jul 5, 2026
Merged

fix(ci): stop coverage badge git 400 from breaking the pipeline#194
JairajJangle merged 1 commit into
mainfrom
fix/ci-coverage-badge-git-400

Conversation

@JairajJangle

Copy link
Copy Markdown
Owner

Problem

The test job started failing on main after #192 bumped actions/checkout@v5@v7. The failing step is Update Coverage Badge (we-cli/coverage-badge-action@main), not the tests:

fatal: unable to access '.../react-native-tree-multi-select/': The requested URL returned error: 400
The process '/usr/bin/git' failed with exit code 128

Because the badge step is in the test job, its failure also blocks publish-npm.

Root cause

actions/checkout@v7 persists git auth via http.extraheader in .git/config. The badge action runs its own nested checkout of gh-pages in the same workspace; the leftover credential header conflicts with its auth and git rejects the request with HTTP 400.

Last @v5 run passed; first @v7 run failed. Only the action versions changed between them.

Fix

  • persist-credentials: false on the test-job checkout — root cause. The job only runs yarn test:cov + yarn install, so it never needs persisted git credentials. No leftover header = no conflict.
  • continue-on-error: true on the badge step — safety net. A cosmetic gh-pages badge push must never take down the release pipeline again.
  • Pin coverage-badge-action to commit SHA 8a0b6ee (was @main) for reproducibility + supply-chain safety.

Testing

Full suite green locally: 248/248 tests pass. Change is workflow YAML only.

The actions/checkout v5 -> v7 bump made the test job persist git auth via
http.extraheader. The we-cli/coverage-badge-action runs its own nested
checkout of gh-pages in the same workspace, and the leftover credential
header conflicted with its auth, making git fail with HTTP 400 and taking
down the whole CI run (including publish-npm).

- Set persist-credentials: false on the test-job checkout (it only runs
  tests and yarn install, so it needs no persisted git credentials).
- Mark the cosmetic badge step continue-on-error so a gh-pages push can
  never block the release pipeline again.
- Pin coverage-badge-action to a commit SHA instead of @main.
@JairajJangle
JairajJangle merged commit 19f11b7 into main Jul 5, 2026
6 checks passed
@github-actions

github-actions Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 3.0.2 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant