Skip to content

Commit 5c9f38d

Browse files
julienldclaude
andauthored
fix(ci): create draft pre-releases for dev builds (#352)
* refactor(ci): unify release workflows with reusable build workflow Reorganizes CI/CD to ensure ALL release types (stable, dev, hotfix, manual) get full binary builds automatically, addressing inconsistent binary availability. Changes: - Add _build-and-release.yml: Reusable workflow for building binaries (Linux/ Windows/macOS) and MCPB bundles, then uploading to GitHub releases - Update semver-release.yml: Call reusable workflow after semantic-release - Update publish-dev.yml: Create pre-release first, then call reusable workflow to build and attach binaries - Update hotfix-release.yml: Create draft release, then call reusable workflow to build binaries and publish - Update build-binary.yml: Remove release logic, keep for PR testing only Benefits: - Consistent binary builds across all release types - Single source of truth for build logic (DRY) - Eliminates manual binary build triggers for releases - Maintains PR testing capability for binary-related changes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix(ci): correct build command in reusable workflow The workflow was incorrectly trying to run a non-existent build.py script. Fixed to use PyInstaller with ha-mcp.spec directly, matching the working build-binary.yml workflow. Also fixed the dependency installation to create venv and install dependencies correctly for PyInstaller. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix(ci): only download binary artifacts, skip Docker build cache The workflow was failing because it was downloading ALL artifacts including Docker build cache artifacts that were timing out. Added pattern filter to only download ha-mcp-* artifacts. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix(ci): add checkout step for gh release upload The upload job was failing with 'not a git repository' because gh CLI requires a git repository to run. Added checkout step before upload. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix(ci): create pre-release as draft before uploading binaries Pre-releases were being published immediately, making them immutable and preventing binary uploads. Changed to create draft pre-releases that get published after binaries are uploaded by the reusable workflow. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent c470d7a commit 5c9f38d

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

.github/workflows/publish-dev.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,14 @@ jobs:
140140
gh release delete "$TAG" --yes 2>/dev/null || true
141141
git push origin --delete "$TAG" 2>/dev/null || true
142142
143-
# Create new pre-release (binaries will be added by build-and-release workflow)
143+
# Create new draft pre-release (binaries will be added by build-and-release workflow)
144144
gh release create "$TAG" \
145145
--title "Dev Build $VERSION" \
146146
--notes-file release_notes.md \
147-
--prerelease
147+
--prerelease \
148+
--draft
148149
149-
echo "✓ Created pre-release $TAG (waiting for binaries)"
150+
echo "✓ Created draft pre-release $TAG (waiting for binaries)"
150151
151152
# Build binaries and attach to release
152153
build-and-release:

0 commit comments

Comments
 (0)