ci: test pull requests only, require up to date #36

Merged
ryan.mcgee merged 1 commit from ci/pr-only-checks into main 2026-10-21 14:27:13 +00:00
Owner

Summary

  • CI ran again on every push to main, on code a pull request had just verified. With "block on outdated branch" enabled on main, a pull request can only merge when it is up to date and its required checks passed, so what lands has been tested as it lands and the post-merge run adds nothing.
  • The protection change itself is a repository setting, applied after this merges.

Changes

  • .github/workflows/ci.yml: drop the push trigger; pull requests and the Monday audit remain.
  • renovate.json: rebaseWhen: behind-base-branch, so Renovate pull requests are updated when main moves (otherwise they could never merge).
  • scripts/propose-release.sh: when the release bump branch already exists, update its open pull request to the current main (POST /pulls/{n}/update?style=rebase) and set it to merge again, instead of exiting and leaving it stuck behind main.
  • README: continuous integration section.

Verification

  • renovate-config-validator --strict, shellcheck -x, actionlint clean.
  • propose-release.sh against a throwaway remote with a stubbed API: an existing branch with an open pull request makes exactly the list, update and merge calls; a failed update is tolerated and reported; a branch without an open pull request makes no further calls.
  • Not run on the forge: the update endpoint, whether a scheduled merge survives the rebase (the script sets it again), and Renovate's rebasing.
## Summary - CI ran again on every push to `main`, on code a pull request had just verified. With "block on outdated branch" enabled on `main`, a pull request can only merge when it is up to date and its required checks passed, so what lands has been tested as it lands and the post-merge run adds nothing. - The protection change itself is a repository setting, applied after this merges. ## Changes - `.github/workflows/ci.yml`: drop the `push` trigger; pull requests and the Monday audit remain. - `renovate.json`: `rebaseWhen: behind-base-branch`, so Renovate pull requests are updated when `main` moves (otherwise they could never merge). - `scripts/propose-release.sh`: when the release bump branch already exists, update its open pull request to the current `main` (`POST /pulls/{n}/update?style=rebase`) and set it to merge again, instead of exiting and leaving it stuck behind `main`. - README: continuous integration section. ## Verification - `renovate-config-validator --strict`, `shellcheck -x`, `actionlint` clean. - `propose-release.sh` against a throwaway remote with a stubbed API: an existing branch with an open pull request makes exactly the list, update and merge calls; a failed update is tolerated and reported; a branch without an open pull request makes no further calls. - Not run on the forge: the update endpoint, whether a scheduled merge survives the rebase (the script sets it again), and Renovate's rebasing.
ci: test pull requests only, require up to date
All checks were successful
Development images / images (push) Successful in 1m40s
CI / format, compile, credo, dialyzer (pull_request) Successful in 1m33s
CI / tests (SQLite) (pull_request) Successful in 2m32s
CI / tests (PostgreSQL) (pull_request) Successful in 2m41s
CI / dependency audit (pull_request) Successful in 49s
8101b3a917
- stop running CI on pushes to main; the branch protection will
  require an up to date branch, so a merge lands as it was tested
- keep the weekly schedule for the dependency audit
- rebase Renovate branches when behind main
- bring a waiting release bump pull request up to date instead of
  leaving it stuck behind main
ryan.mcgee force-pushed ci/pr-only-checks from 8101b3a917
All checks were successful
Development images / images (push) Successful in 1m40s
CI / format, compile, credo, dialyzer (pull_request) Successful in 1m33s
CI / tests (SQLite) (pull_request) Successful in 2m32s
CI / tests (PostgreSQL) (pull_request) Successful in 2m41s
CI / dependency audit (pull_request) Successful in 49s
to 5bd590115b
All checks were successful
Development images / images (push) Successful in 12s
CI / format, compile, credo, dialyzer (pull_request) Successful in 1m33s
CI / tests (SQLite) (pull_request) Successful in 2m16s
CI / dependency audit (pull_request) Successful in 47s
CI / tests (PostgreSQL) (pull_request) Successful in 2m10s
2026-10-21 14:23:02 +00:00
Compare
ryan.mcgee deleted branch ci/pr-only-checks 2026-10-21 14:27:13 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
White_Ghost_Cyber_Systems/traefik-control!36
No description provided.