Skip to content

fix: run CI once per push to master to avoid coverage race - #293

Open
farhan wants to merge 1 commit into
openedx:masterfrom
farhan:farhan/fix-ci-double-run
Open

farhan wants to merge 1 commit into
openedx:masterfrom
farhan:farhan/fix-ci-double-run

Conversation

@farhan

@farhan farhan commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Inspired by openedx/platform-plugin-aspects#257 (fix by @bmtcril).

  • Remove the push: branches: [master] trigger from ci.yml
  • Update PR template: replace "Version bumped" with a Conventional Commits reminder

Problem

release.yml calls ci.yml via workflow_call on every push to master. With a separate push: branches: [master] trigger also present in ci.yml, every merge fires CI twice concurrently — both runs race to upload coverage data to Codecov, which can cause flaky failures.

This is visible in the run history: every push to master generates a paired ci.yml run (from the push trigger) and a release.yml run (which internally re-runs all of ci.yml via workflow_call):

The same bug was introduced in openedx/platform-plugin-aspects PR #253 and fixed in PR #257 by @bmtcril.

Fix

Remove the push: trigger from ci.yml. The release.yml → workflow_call path already covers pushes to master, so CI still runs on every merge — just once.

PR template update

python-semantic-release automates versioning from commit message types, so "Version bumped" is no longer a meaningful manual step. Replaced with a Conventional Commits reminder so contributors know which prefix triggers which release tier.

Testing Notes

No logic changes — only CI trigger configuration. Verified by inspecting the workflow files. The fix matches exactly what was applied in platform-plugin-aspects PR #257.

CI failures (django52, e2e) are pre-existing infrastructure flakes unrelated to this PR — see this comment for details.

Important

PR implemented with the assistance of Claude Code. Refined and validated before being submitted for code review.

release.yml calls ci.yml via workflow_call on every push to master,
so the separate push: trigger in ci.yml fired CI twice concurrently.
Both runs raced to upload to the Codecov coverage data branch.

Remove the push: trigger from ci.yml; release.yml's workflow_call
covers pushes to master already.

Also replace the "Version bumped" PR template checklist item with a
Conventional Commits reminder — versioning is now automated by
python-semantic-release and the manual checkbox is misleading.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@farhan
farhan requested a review from taimoor-ahmed-1 October 5, 2026 08:03
@farhan farhan closed this Oct 5, 2026
@farhan farhan reopened this Oct 5, 2026
@farhan

farhan commented Oct 5, 2026

Copy link
Copy Markdown
Contributor Author

CI failures are pre-existing — not introduced by this PR

Both failing jobs (django52 and e2e) are unrelated to the changes here and reproduce consistently on today's runs across the org.

django52 — Codecov CLI download failure

curl: (35) OpenSSL/3.0.13: error:0A000410:SSL routines::sslv3 alert handshake failure
==> Could not verify signature. Please contact Codecov if problem continues
    Exiting...

The Codecov CLI binary download fails mid-TLS-handshake on the GitHub Actions runner. The signature check error is a downstream consequence — there is nothing to verify because the download never completed. This is a runner-side network blip, not a code issue.

e2e — job timeout / canceled

The e2e tox run is killed before completion (The operation was canceled), hitting the runner's time limit. This has happened on previous runs as well and is unrelated to workflow trigger changes.

Evidence this is pre-existing:

  • The last push to master (run #36716132397, Sep 30) passed both django52 and e2e cleanly.
  • Failing twice in a row on today's (Oct 5) runs despite a close/reopen points to an infrastructure issue on GitHub Actions today, not a regression in this PR.
  • This PR only removes 2 lines from ci.yml (the push: trigger) and updates the PR template — no test logic, no dependencies, no coverage configuration touched.

@farhan
farhan marked this pull request as ready for review October 5, 2026 08:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants