[Fix]: Refactored Application Release Process #103

Closed
opened 2026-06-19 15:11:47 +00:00 by ValleyGeek · 1 comment
Owner

Affected area

Repo CI Jobs

Current behavior

  • Releases are persisting for for development branches after they are removed
  • Occasional releases are being named as Bulk Image Organizer Dev ([PR#])
  • There appear to be duplicate actions/jobs for the same deliverables generated, jobs are poorly named, jobs don't seem to be logically bundled

Desired improvement

These improvements should be built directly into the job tooling where practical and into the agents workflow where job tooling is unqualified for the task.

  • Releases named as Bulk Image Organizer Dev (PR#) should never be generated, they should only be following the naming convention like Bulk Image Organizer Dev (0.1.34/issue-92-bulk-dupe-delete) when on a dev branch or Bulk Image Organizer 0.1.35 when stable and pushed to main.
  • Jobs should only be triggered when a code change that affects the compiled binary have been pushed
  • Jobs should be named according to what is being done, not generic or with '-1'
  • Redundant actions and jobs should not be generated or triggered
  • Newer jobs against the same branch should cancel old jobs
  • A task needs to be run to clean up dev releases that were built from branches which no longer exist; keeping only the main branch release history along with dev releases related to active, existing development branches
  • Release descriptions should be more user oriented, not simply a repeat of what's apparent from the title and included artifacts.

References

Issue #62 defines some of the base expectations.

### Affected area Repo CI Jobs ### Current behavior - Releases are persisting for for development branches after they are removed - Occasional releases are being named as `Bulk Image Organizer Dev ([PR#])` - There appear to be duplicate actions/jobs for the same deliverables generated, jobs are poorly named, jobs don't seem to be logically bundled ### Desired improvement These improvements should be built directly into the job tooling where practical and into the agents workflow where job tooling is unqualified for the task. - Releases named as `Bulk Image Organizer Dev (PR#)` should never be generated, they should only be following the naming convention like `Bulk Image Organizer Dev (0.1.34/issue-92-bulk-dupe-delete)` when on a dev branch or `Bulk Image Organizer 0.1.35` when stable and pushed to main. - Jobs should only be triggered when a code change that affects the compiled binary have been pushed - Jobs should be named according to what is being done, not generic or with '-1' - Redundant actions and jobs should not be generated or triggered - Newer jobs against the same branch should cancel old jobs - A task needs to be run to clean up dev releases that were built from branches which no longer exist; keeping only the `main` branch release history along with dev releases related to active, existing development branches - Release descriptions should be more user oriented, not simply a repeat of what's apparent from the title and included artifacts. ### References Issue #62 defines some of the base expectations.
Member

Resolved on branch 0.1.35-enhancement.103, PR pending. Root causes confirmed against live release history before fixing:

  • linux-appimage.yml/windows-release.yml each had their own independent push trigger in addition to being called via workflow_call from ci.yml, so dev-branch builds ran ungated by lint/test and raced the main CI pipeline. Dead workflow_run-branch-resolution code (for an event never declared in on:) was the source of the Bulk Image Organizer Dev (PR#) titles — confirmed live: releases like dev-102, dev-101, dev-100, dev-98, dev-85, dev-83 were exact duplicates (by commit SHA) of correctly-named dev-{branch-slug} releases.
  • Fix: ci.yml is now the sole trigger for release builds (gated on needs: test, never pull_request); branch/sha resolve only from the real git ref, so a PR#-named release is no longer structurally possible. Jobs renamed to build-appimage/build-windows-exe. Added a ci.yml-level concurrency group.
  • Release descriptions now pull from the matching CHANGELOG.md section instead of repeating the title.
  • New scripts/prune-orphaned-dev-releases.py reconciles dev releases against existing branches; wired into the agent-run prune-merged-branches.py and a new best-effort daily cron workflow, on top of the existing per-branch delete-triggered prune.
  • Ran the new cleanup script live: deleted all 12 currently-orphaned/duplicate dev releases, leaving only the 6 main history releases plus the one release for the still-live dev branch.

See docs/DECISIONS.md DR-022 for the full design rationale.

Resolved on branch `0.1.35-enhancement.103`, PR pending. Root causes confirmed against live release history before fixing: - `linux-appimage.yml`/`windows-release.yml` each had their own independent `push` trigger in addition to being called via `workflow_call` from `ci.yml`, so dev-branch builds ran ungated by lint/test and raced the main CI pipeline. Dead `workflow_run`-branch-resolution code (for an event never declared in `on:`) was the source of the `Bulk Image Organizer Dev (PR#)` titles — confirmed live: releases like `dev-102`, `dev-101`, `dev-100`, `dev-98`, `dev-85`, `dev-83` were exact duplicates (by commit SHA) of correctly-named `dev-{branch-slug}` releases. - Fix: `ci.yml` is now the sole trigger for release builds (gated on `needs: test`, never `pull_request`); branch/sha resolve only from the real git ref, so a PR#-named release is no longer structurally possible. Jobs renamed to `build-appimage`/`build-windows-exe`. Added a `ci.yml`-level concurrency group. - Release descriptions now pull from the matching `CHANGELOG.md` section instead of repeating the title. - New `scripts/prune-orphaned-dev-releases.py` reconciles dev releases against existing branches; wired into the agent-run `prune-merged-branches.py` and a new best-effort daily cron workflow, on top of the existing per-branch `delete`-triggered prune. - Ran the new cleanup script live: deleted all 12 currently-orphaned/duplicate dev releases, leaving only the 6 `main` history releases plus the one release for the still-live dev branch. See `docs/DECISIONS.md` DR-022 for the full design rationale.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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#103
No description provided.