Hive
fix(ci): harden CLI release artifact handling
GitHub issue · Closed
What changed
The release workflow now:
- Downloads and merges Linux CLI artifacts in
commit-and-releaseonly when both CLI release jobs succeeded:release-cliandrelease-cli-linux. - Increases the macOS
Release CLItimeout from 50 to 75 minutes.
The artifact guards now match the existing guards for CLI tag creation, the CLI GitHub release, Homebrew updates, and release commit changes.
Why it changed
The failed release run had successful Linux CLI jobs, but the macOS Release CLI job was cancelled before it uploaded cli-artifacts. That job ran for essentially its full 50-minute timeout while still inside mise run --no-deps cli:bundle, with cleanup terminating xcodebuild and SWBBuildService.
Because commit-and-release runs under always(), it skipped the macOS artifact download but still downloaded Linux artifacts and tried to append checksums into build/SHASUMS256.txt. The build directory only comes from cli-artifacts, so the job failed with No such file or directory.
Recent successful macOS CLI release jobs were already around 39 to 46 minutes, so the 50-minute timeout had very little headroom. The 75-minute timeout gives the release path breathing room while still bounding genuinely stuck builds.
Impact
A cancelled or failed macOS CLI release no longer causes a secondary artifact merge failure. The macOS CLI release also has enough timeout headroom for the current observed build-time range. Other successful components can still proceed through the aggregate release job, preserving the existing partial-release behavior.
Validation
- Parsed
.github/workflows/release.ymlwith Ruby YAML loading. - Reviewed the surrounding release guards to confirm the CLI release path already requires both CLI jobs later in the workflow.
actionlint was not installed in the worktree, so I could not run it locally.