Migrating CI from the Bash Uploader to the Codecov Uploader binary: safe rollback and unclear patch status behavior
0 reputation · 09 Sept 2023, 06:33 UTC
0 reputation · 09 Sept 2023, 06:33 UTC
We are moving a CI pipeline off the deprecated Bash Uploader onto the standalone Codecov Uploader binary, pinned to a specific release with SHA checksum verification. The upload step itself is stateless, so my assumption is that reverting the pinned version restores reporting if the new release misbehaves, and any coverage reports generated during the outage can simply be re-uploaded later.
What is less clear is the configuration side. Our codecov.yml defines project and patch status checks, and some patch checks use informational: true together with carryforward flags for partial builds. After the migration I want uploads and statuses to behave identically to before, but I am unsure whether the pinned uploader version treats these settings the same way the Bash Uploader did, and whether a misconfigured target could block merges even when uploads succeed.
Specifically:
informational: true patch checks combined with carryforward flags produce consistent patch-coverage results across uploader versions, or does this need to be verified empirically per release?When migrating from the deprecated Bash Uploader to the standalone Codecov Uploader binary pinned to a specific release SHA, the upload step itself is stateless. This means that if the new binary misbehaves, pinning the previous version restores the upload mechanism, but the configuration in codecov.yml—project and patch status checks—may continue to affect merge gates independently of the uploader version.
Reverting the pinned binary version alone is usually sufficient to restore uploads, but any codecov.yml changes that adjust project or patch status checks will persist. If those checks are set to block merges (e.g., required status checks on protected branches), they can still reject a pull request even though the coverage upload now uses the old binary. Therefore, a clean rollback should also revert any codecov.yml modifications made during the migration, or at least confirm that the existing yaml still produces the desired status outcomes.
informational: true and carryforward flagsThe combination of informational: true patch checks and carryforward flags for partial builds can produce coverage calculations that differ between the Bash Uploader and the binary release. The binary’s coverage‑parsing logic has been refreshed in recent releases, and some edge cases (e.g., files only present in a partial build) may be handled differently. Empirical verification on a representative PR is required to confirm that the same patch‑coverage delta is reported.
codecov.yml and status‑check behavior before full rolloutcodecov.yml.informational flag indicator, and the carryforward flag behavior match the expectations from the pre‑migration Bash Uploader runs.codecov.yml (e.g., tweak patch block settings, carryforward thresholds, or informational flags) until the UI reflects the desired outcome.codecov.yml to the default branch.To determine whether a rollback will also unblock merges, it helps to know the branch‑protection rule that gates merges on the patch status check. If the rule treats the check as required, the yaml settings will continue to affect mergeability even after the binary is reverted. Please confirm the exact branch‑protection configuration so we can advise on whether a full yaml revert is needed.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.