Commit 5c9f38d
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
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
143 | | - | |
| 143 | + | |
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
| 147 | + | |
| 148 | + | |
148 | 149 | | |
149 | | - | |
| 150 | + | |
150 | 151 | | |
151 | 152 | | |
152 | 153 | | |
| |||
0 commit comments