fix(ci): drop redundant pull_request trigger, name prune runs #105

Merged
ValleyGeek merged 2 commits from 0.1.35-enhancement.103 into main 2026-06-19 18:04:03 +00:00
Member

Summary

Follow-up to #103 / #104, found while watching the merged PR's checks: ci.yml still triggered on both push (any branch) and pull_request (to main), so every push to a branch with an open PR produced two full ci.yml runs for the identical commit — visible on the PR as duplicate same-named jobs suffixed -1 (build-appimage-1, build-windows-exe-1).

  • Drop the pull_request trigger from ci.yml. All branches in this repo are same-repo (never forks), so the push-triggered run already reports status checks against the PR's head commit; the separate trigger added no coverage, only a redundant lint/test run.
  • Add run-name: to prune-dev-release.yml and prune-orphaned-releases.yml. Both fire on events with no associated commit (delete, schedule), so their Actions-list run titles defaulted to the bare workflow name with no indication of which branch was pruned / which sweep ran. They now show Prune dev release: <branch> and Scheduled dev-release sweep #<run-number>.
  • docs/DECISIONS.md DR-022 updated to record both.

No application code changed; VERSION stays 0.1.35.

Test plan

  • ruff check . && ruff format --check .
  • pytest (363 passed, 1 skipped)
  • Validated both edited workflow YAML files parse (yaml.safe_load)
  • Confirm the next push to a branch with an open PR shows a single, unduplicated job set (no -1 suffixes)
  • Confirm the next branch deletion / scheduled sweep run shows the new informative run-name in the Actions list
## Summary Follow-up to #103 / #104, found while watching the merged PR's checks: `ci.yml` still triggered on both `push` (any branch) and `pull_request` (to `main`), so every push to a branch with an open PR produced two full `ci.yml` runs for the identical commit — visible on the PR as duplicate same-named jobs suffixed `-1` (`build-appimage-1`, `build-windows-exe-1`). - Drop the `pull_request` trigger from `ci.yml`. All branches in this repo are same-repo (never forks), so the `push`-triggered run already reports status checks against the PR's head commit; the separate trigger added no coverage, only a redundant lint/test run. - Add `run-name:` to `prune-dev-release.yml` and `prune-orphaned-releases.yml`. Both fire on events with no associated commit (`delete`, `schedule`), so their Actions-list run titles defaulted to the bare workflow name with no indication of which branch was pruned / which sweep ran. They now show `Prune dev release: <branch>` and `Scheduled dev-release sweep #<run-number>`. - `docs/DECISIONS.md` DR-022 updated to record both. No application code changed; `VERSION` stays `0.1.35`. ## Test plan - [x] `ruff check . && ruff format --check .` - [x] `pytest` (363 passed, 1 skipped) - [x] Validated both edited workflow YAML files parse (`yaml.safe_load`) - [ ] Confirm the next push to a branch with an open PR shows a single, unduplicated job set (no `-1` suffixes) - [ ] Confirm the next branch deletion / scheduled sweep run shows the new informative run-name in the Actions list
linux-appimage.yml and windows-release.yml each declared their own
independent push trigger in addition to being called via workflow_call
from ci.yml, so dev-branch release builds fired immediately on push,
ungated by lint/test, racing the ci.yml pipeline. Both workflows also
carried dead workflow_run branch-resolution code for an event they never
declared, which live release history shows produced PR#-numbered release
titles (e.g. "Bulk Image Organizer Dev (102)") instead of branch names.

ci.yml is now the sole trigger for release builds: the reusable workflows
keep only workflow_call/workflow_dispatch, run for any push (gated on
needs: test, never on pull_request), and resolve branch/sha only from the
real git ref. Job ids are renamed to describe the deliverable
(build-appimage, build-windows-exe). ci.yml gains its own concurrency
group so redundant lint/test runs on the same branch cancel each other.

Release bodies are now generated by scripts/build-release-notes.py, which
extracts the matching CHANGELOG.md section instead of repeating the title.
prune-dev-release.yml only fires on a single branch's delete webhook and
has no way to recover a missed event or clear backlog. A live audit found
12 of 19 releases on the real instance were orphaned (branch gone, or a
PR#-numbered duplicate of a correctly-named dev release).

scripts/prune-orphaned-dev-releases.py lists releases and branches via the
Forgejo API, keeps every v{version} tag plus any dev-* tag whose slug
matches a live branch, and deletes the rest. It's wired into
scripts/prune-merged-branches.py (run by agents per AGENTS.md step 8, with
a --skip-release-prune escape hatch) and into a new best-effort daily
schedule workflow, prune-orphaned-releases.yml, as a second safety net.
docs: record CI release-pipeline redesign (DR-022)
All checks were successful
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 2m6s
CI / build-appimage-1 (pull_request) Has been skipped
CI / build-appimage (pull_request) Successful in 0s
CI / build-windows-exe-1 (pull_request) Has been skipped
CI / build-windows-exe (pull_request) Successful in 0s
f7f1a275f0
fix(ci): drop redundant pull_request trigger from ci.yml
All checks were successful
CI / lint (push) Successful in 10s
CI / test (push) Successful in 1m42s
CI / build-appimage-1 (push) Has been skipped
CI / build-windows-exe-1 (push) Has been skipped
CI / build-appimage (push) Successful in 0s
CI / build-windows-exe (push) Successful in 0s
9ae3eaa8b4
Every push to a branch with an open PR produced two full ci.yml runs for
the identical commit (one push-triggered, one pull_request-triggered),
visible on the PR as duplicate same-named jobs suffixed -1. All branches
in this repo are same-repo (never forks), so the push-triggered run's
status checks already cover the PR's head commit; the separate
pull_request trigger added no coverage, only redundant lint/test runs.
fix(ci): give prune workflows an informative run-name
All checks were successful
CI / lint (push) Successful in 7s
CI / test (push) Successful in 1m41s
CI / build-appimage-1 (push) Has been skipped
CI / build-appimage (push) Successful in 0s
CI / build-windows-exe-1 (push) Has been skipped
CI / build-windows-exe (push) Successful in 0s
086554acb6
delete and schedule events have no commit message, so these runs showed
up in the Actions list with only the bare workflow name. run-name (same
GitHub Actions schema field Forgejo Actions implements) now shows the
pruned branch / sweep run number, distinguishing them from the
commit-message-titled build/CI runs.
Claude force-pushed 0.1.35-enhancement.103 from 086554acb6
All checks were successful
CI / lint (push) Successful in 7s
CI / test (push) Successful in 1m41s
CI / build-appimage-1 (push) Has been skipped
CI / build-appimage (push) Successful in 0s
CI / build-windows-exe-1 (push) Has been skipped
CI / build-windows-exe (push) Successful in 0s
to 1d57698b0b 2026-06-19 17:46:51 +00:00
Compare
ValleyGeek deleted branch 0.1.35-enhancement.103 2026-06-19 18:04:03 +00:00
Sign in to join this conversation.
No reviewers
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
ai-collab/bulk-image-organizer!105
No description provided.