Skip to content

fix(ci): reliable release pipeline — draft-then-publish architecture#292

Merged
satwareAG-ironMike merged 1 commit into
satware-mainfrom
fix/release-pipeline-reliable
Jul 2, 2026
Merged

fix(ci): reliable release pipeline — draft-then-publish architecture#292
satwareAG-ironMike merged 1 commit into
satware-mainfrom
fix/release-pipeline-reliable

Conversation

@satwareAG-ironMike

Copy link
Copy Markdown

Fixes all release pipeline issues from v11.0.1 release.

Changes

Step What
1 Fix macOS test-bundles artifact pattern (glob order mismatch)
2 Upgrade softprops v2→v3 in Linux + macOS
3 Windows: replace raw gh release upload with softprops v3 + draft: true
4 Remove fragile ci-gate jobs (replaced by pre-tag verification script)
5 New publish-release.yml: waits for all 3 platforms, generates SLSA centrally, publishes
6 split-stubs: delete existing tag before re-creating (prevents collision)
7 scripts/verify-ci-green.sh: pre-tag CI verification
8 AGENTS.md: release procedure documentation

Architecture

All platform workflows upload with draft: true. The publish-release.yml workflow is the ONLY one that publishes (draft: false). No race conditions.

Tag push v*
  ├── Release Linux   → upload (draft:true)
  ├── Release macOS   → upload (draft:true)  
  ├── Release Windows → upload (draft:true)
  └── Publish Release → wait for all 3 → SLSA → publish (draft:false)

7 files, +300/-321 lines (net reduction). Code Quality + Sanitizers pass.

Overhauls the release pipeline to fix all issues encountered during
the v11.0.1 release:

1. macOS test-bundles: Fix artifact download pattern (order mismatch)
2. softprops/action-gh-release: Upgrade v2 → v3 in Linux + macOS
3. Windows: Replace raw 'gh release upload' with softprops v3 + draft:true
4. Remove ci-gate jobs (fragile gh run list polling for tag-triggered runs)
   — replaced by pre-tag verification script (scripts/verify-ci-green.sh)
5. New publish-release.yml: waits for all 3 platform workflows, generates
   SLSA attestations centrally, then publishes (draft:false)
6. split-stubs: Delete existing tag before re-creating (Option A)
7. scripts/verify-ci-green.sh: Pre-tag CI verification
8. AGENTS.md: Release procedure documentation

Architecture: All platform workflows upload with draft:true.
The publish-release.yml workflow is the ONLY one that publishes.
No race conditions, no 'release not found' errors, no SLSA duplication.

Files changed:
- .github/workflows/release-linux.yml: -130 lines (ci-gate + SLSA removed)
- .github/workflows/release-macos.yml: -106 lines (same + pattern fix)
- .github/workflows/release-windows.yml: -99 lines (ci-gate + raw upload removed)
- .github/workflows/publish-release.yml: NEW (central publish + SLSA)
- .github/workflows/split-stubs.yml: +11 lines (tag deletion step)
- scripts/verify-ci-green.sh: NEW
- AGENTS.md: +43 lines (release procedure)
@satwareAG-ironMike satwareAG-ironMike merged commit bffb1bf into satware-main Jul 2, 2026
20 checks passed
@satwareAG-ironMike satwareAG-ironMike deleted the fix/release-pipeline-reliable branch July 2, 2026 04:42
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