Skip to content

ci: run push-triggered workflows only on master and tags - #1487

Closed
agarg21 wants to merge 1 commit into
deeptools:masterfrom
agarg21:ci/push-trigger-master-only
Closed

agarg21 wants to merge 1 commit into
deeptools:masterfrom
agarg21:ci/push-trigger-master-only

Conversation

@agarg21

@agarg21 agarg21 commented Oct 19, 2026

Copy link
Copy Markdown

Welcome to deepTools GitHub repository! Please check the following regarding
your pull request :

  • Does the PR contain new feature?
  • Does the PR contain bugfix?
  • Does the PR contain documentation changes?
  • Does the PR contain changes to the galaxy wrapper?
  • Does the PR title follow Conventional Commits? (ci:)

CI-only change (6 workflow trigger blocks); no code, docs or wrapper changes.

Why

Every commit to an in-repo PR branch currently runs each CI workflow twice, once for push and once for pull_request: about 73 jobs (~430 job-min) per commit. The 20-concurrent-job limit (5 for macOS) is saturated on every commit we sampled, so jobs wait a median of ~14 min for a runner. tests_planemo jobs take ~8 min, but the workflow's median wall is ~26 min (last 30 days, n=35). PRs from forks, which only fire pull_request, finish the same workflow in a median 16 min.

What

Adds branches: [master] to the push trigger of tests_planemo, tests_pytest, tests_ruff, tests_docs, tests_rust and build_wheels, plus tags: ["*"] for build_wheels so its tag-gated Release job still publishes. This matches what #1463 did for build_wheels_preview.

  • PRs run exactly the same jobs, with the same names, on pull_request.
  • master still gets push CI after merge; the tests_rust weekly schedule is unchanged.
  • workflow_dispatch stays on all six workflows.

One behaviour change: a branch pushed without a PR no longer runs CI automatically. Use "Run workflow" (workflow_dispatch) or open a draft PR. To revert, restore the on: lines.

Measured

Measured in a fork (agarg21/deepTools), 3 commits per arm, interleaved, same workflows, fork-internal PRs so both push and pull_request fire as they do here:

tests_planemo PR wall (median) Jobs per commit Job-min per commit (median)
Before 26.6 min 73 432
After 15.9 min (−40%) 37 208 (−52%)

Counted runs (all green): before 39192578097, 39198301119, 39203849377 (27.3 / 25.5 / 26.6 min); after 39196991421, 39202031910, 39207138393 (15.4 / 16.3 / 15.9 min). Caveat: if the org has more than 20 concurrent job slots, the wall gain is smaller, but the job-minute saving holds.

AI assistance: prepared with Claude Code (Anthropic); reviewed and submitted by Apoorva.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Rt4UYn6zqR9uS7DWNGEBYx

Same-repo PR branches fired every workflow twice per commit (push +
pull_request), ~73 jobs against the 20-job concurrency limit. Limit
push to master (plus tags for build_wheels, whose Release job needs
tag refs). PRs run the same jobs via pull_request; workflow_dispatch
is unchanged for testing a branch without a PR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rt4UYn6zqR9uS7DWNGEBYx
@WardDeb

WardDeb commented Oct 19, 2026

Copy link
Copy Markdown
Member

Thanks for the effort. I'm not really bothered by wait times atm, and actually find the run/commit quite handy in my development workflow.

@WardDeb WardDeb closed this Oct 19, 2026
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