fix(ci): kill release.yml, restore softprops release job in build.yml#356
Merged
Conversation
Five consecutive failures of release.yml on tag v0.6.58.0: 1. pnpm/action-setup v4+version conflict (PR #352 fix) 2. `pnpm --filter skytwin-desktop build` skipped workspace deps (PR #353 fix) 3. pnpm `--` separator broke electron-builder arg parsing (PR #354 fix) 4. Empty CSC_LINK env var made electron-builder treat CWD as cert path (PR #355 attempted fix — did not actually work, see #5) 5. CSC_IDENTITY_AUTO_DISCOVERY=false isn't enough because CSC_LINK="" (set-to-empty-string, not unset) still triggers the path-resolve code path Each fix revealed the next bug because release.yml was never tested end-to-end — it's been broken since the file was committed. At 5 fixes deep, the right move is to stop fixing release.yml and use the known-working publisher pattern instead. build.yml already builds artifacts successfully on tag push via its desktop-mac/desktop-windows/desktop-linux/mobile-* matrix. PR #352 deleted build.yml's softprops-based release: job specifically to avoid double-publishing with release.yml. With release.yml deleted, that conflict is gone — restore the simpler chain: - Desktop+mobile matrix builds artifacts (already works, --publish never). - New release: job downloads via actions/download-artifact and creates a draft GitHub Release via softprops/action-gh-release@v3. Trade-off: - Lose: electron-builder's GitHub publisher integration (auto-updater channel YAML). When code signing + auto-update become priorities, add release.yml back with the lessons from #352-#355 baked in OR switch to a single workflow with electron-builder publish. - Gain: artifacts actually publish today, on an unsigned-build basis, which is what the launch plan §1.6 README rewrite needs. After this lands: re-tag v0.6.58.0 (5th attempt). build.yml's matrix runs as before, plus the new release: job downloads + publishes a draft. Operator manually clicks Publish in the GitHub UI to make the release live. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Moves GitHub Release publishing back into build.yml by adding a tag-triggered release job and removing the dedicated release.yml workflow.
Changes:
- Deleted
.github/workflows/release.yml(electron-builder publish workflow). - Added a
releasejob to.github/workflows/build.ymlthat downloads existing build artifacts and creates a draft GitHub Release viasoftprops/action-gh-release.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| .github/workflows/release.yml | Removes the standalone multi-OS release/publish workflow. |
| .github/workflows/build.yml | Adds a tag-only release publisher job that attaches previously-built artifacts to a draft GitHub Release. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+456
to
+464
| files: | | ||
| artifacts/SkyTwin-macOS-dmg/* | ||
| artifacts/SkyTwin-macOS-zip/* | ||
| artifacts/SkyTwin-Windows-installer/* | ||
| artifacts/SkyTwin-Linux-AppImage/* | ||
| artifacts/SkyTwin-Linux-deb/* | ||
| artifacts/SkyTwin-Linux-rpm/* | ||
| artifacts/SkyTwin-Android-apk/* | ||
| artifacts/SkyTwin-iOS-simulator/* |
Comment on lines
+420
to
+429
| # History: this job was deleted in PR #352 to avoid double-publishing | ||
| # against release.yml's electron-builder Github publisher. release.yml | ||
| # then failed FIVE consecutive release attempts (pnpm setup, workspace | ||
| # build, --publish arg forwarding, CSC empty-string, ...). Each fix | ||
| # surfaced the next bug because release.yml was never tested | ||
| # end-to-end. Reverting: this simpler softprops-based path downloads | ||
| # the artifacts the desktop-mac/win/linux jobs already produce | ||
| # successfully (build.yml's matrix is well-exercised) and creates a | ||
| # draft GitHub Release. release.yml was deleted entirely in the same | ||
| # PR — build.yml is now the only publisher. |
This was referenced May 25, 2026
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Five consecutive release.yml failures on tag v0.6.58.0 (PRs #352-#355 each fixed one issue and surfaced the next). At 5 fixes deep, release.yml was never tested end-to-end and the iteration loop is too expensive (5-10 min per cycle).
Pivoting to the simpler known-working pattern:
build.yml's desktop-mac/win/linux matrix already builds artifacts successfully on tag push (matrix is well-exercised by every PR). The restored release job downloads those artifacts via `actions/download-artifact` and creates a draft Release via `softprops/action-gh-release@v3` — battle-tested action, no electron-builder publisher chain to debug.
Trade-off: lose electron-builder's GitHub publisher (auto-updater YAML files). When code signing + auto-update become priorities, add release.yml back with lessons from #352-#355 baked in. For launch, artifacts ship as unsigned drafts — exactly what launch-plan §1.6 README needs.
Test plan
After merge: re-tag v0.6.58.0 (fifth attempt). build.yml's matrix builds + new release job creates draft GitHub Release. Operator clicks Publish in UI when ready.
🤖 Generated with Claude Code