Skip to content

ci: refactor release workflows into multi-job pipelines with cleanup - #111

Merged
paulkczw merged 5 commits into
devfrom
feat/release-cleanup
Jun 2, 2026
Merged

ci: refactor release workflows into multi-job pipelines with cleanup#111
paulkczw merged 5 commits into
devfrom
feat/release-cleanup

Conversation

@paulkczw

@paulkczw paulkczw commented Jun 2, 2026

Copy link
Copy Markdown
Member

Summary

Refactors both release workflows (beta + stable) from monolithic single-job workflows into multi-job pipelines with logical units and adds automated cleanup of old pre-releases.

Changes

Multi-Job Pipeline

Both release-beta.yml and release-stable.yml are split into 5 jobs:

  1. version — determine version metadata from gradle.properties
  2. build — compile, assemble artifacts, create zip
  3. sign — generate manifest with SHA-256 hashes + GPG sign
  4. publish — publish maven artifacts + create GitHub release
  5. cleanup — delete outdated beta/dev pre-releases

Artifacts are passed between jobs via actions/upload-artifact@v4 / actions/download-artifact@v4.

Cleanup Workflow (cleanup-releases.yml)

New reusable workflow that deletes old beta and dev pre-releases (including their tags):

  • Triggered as workflow_call from release pipelines or manually via workflow_dispatch
  • Reads current version from gradle.properties automatically
  • Beta trigger: deletes all beta/dev pre-releases from older versions (e.g. releasing 2.5.1-beta.X deletes 2.5.0-beta.*, 2.4.x-beta.*, etc.)
  • Stable trigger: deletes all beta/dev pre-releases of the same version and older (e.g. releasing 2.5.1 deletes 2.5.1-beta.*, 2.5.0-beta.*, etc.)
  • Stable releases are never touched

Bugfix

  • Fixed GPG signing if condition (env.GPG_PRIVATE_KEYsecrets.GPG_PRIVATE_KEY) — the original condition evaluated before the step-level env was applied, so signing was effectively dead code

@paulkczw
paulkczw merged commit 790f4cf into dev Jun 2, 2026
1 check passed
@paulkczw
paulkczw deleted the feat/release-cleanup branch June 2, 2026 20:14
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.

1 participant