chore(ci): parallelize release workflow to start e2e tests earlier#6491
chore(ci): parallelize release workflow to start e2e tests earlier#6491
Conversation
Split build-tarball job into separate Linux and macOS jobs to allow e2e tests, rpm, and deb builds to start as soon as Linux builds complete, without waiting for slower macOS builds. Also add name to test-tool retry step in registry workflow. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull Request Overview
This PR optimizes the CI release workflow by parallelizing build jobs to reduce total workflow execution time. The main improvement allows e2e tests to start as soon as Linux builds complete rather than waiting for slower macOS builds.
- Split the monolithic
build-tarballjob into separate Linux and macOS jobs that can run in parallel - Updated downstream jobs to depend only on the specific build artifacts they need
- Added descriptive naming to improve workflow readability
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| .github/workflows/release.yml | Split build-tarball job into Linux and macOS variants, updated job dependencies to enable parallel execution |
| .github/workflows/registry.yml | Added descriptive name to test tool retry step |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| @@ -233,6 +253,7 @@ jobs: | |||
| - rpm | |||
| - deb | |||
| - e2e-linux | |||
There was a problem hiding this comment.
The release job should also depend on build-tarball-linux to ensure all build artifacts are available before release. Currently it only depends on macOS and Windows builds but not Linux builds.
| - e2e-linux | |
| - e2e-linux | |
| - build-tarball-linux |
Ensure Linux build artifacts are available before release. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Hyperfine Performance
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2025.9.24 x -- echo |
20.8 ± 0.5 | 20.0 | 27.9 | 1.00 |
mise x -- echo |
21.2 ± 0.4 | 20.2 | 23.4 | 1.02 ± 0.03 |
mise env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2025.9.24 env |
20.2 ± 0.5 | 19.2 | 26.8 | 1.00 |
mise env |
20.5 ± 0.4 | 19.4 | 22.8 | 1.01 ± 0.04 |
mise hook-env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2025.9.24 hook-env |
19.8 ± 0.4 | 19.0 | 23.7 | 1.00 |
mise hook-env |
20.3 ± 0.4 | 19.4 | 21.6 | 1.02 ± 0.03 |
mise ls
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2025.9.24 ls |
17.7 ± 0.5 | 17.0 | 23.6 | 1.00 |
mise ls |
18.0 ± 0.4 | 17.3 | 19.3 | 1.02 ± 0.03 |
xtasks/test/perf
| Command | mise-2025.9.24 | mise | Variance |
|---|---|---|---|
| install (cached) | 171ms | ✅ 107ms | +59% |
| ls (cached) | 65ms | 65ms | +0% |
| bin-paths (cached) | 71ms | 71ms | +0% |
| task-ls (cached) | 485ms | 483ms | +0% |
✅ Performance improvement: install cached is 59%
Summary
build-tarballjob into separatebuild-tarball-linuxandbuild-tarball-macosjobse2e-linux,rpm, anddebjobs to depend only onbuild-tarball-linuxreleasejob to depend on bothbuild-tarball-macosandbuild-tarball-windowsMotivation
Currently, we need to wait for the slow macOS x64 and arm64 builds to complete before starting e2e tests. This restructuring allows e2e tests to start as soon as Linux builds complete, significantly reducing total workflow time.
Test plan
🤖 Generated with Claude Code
Note
Split
build-tarballintobuild-tarball-linuxandbuild-tarball-macos, updated dependent jobs to rely on Linux builds, and named the test-tool retry step in the registry workflow..github/workflows/release.yml):build-tarballintobuild-tarball-linux(Linux targets onubuntu-latest) andbuild-tarball-macos(macOS targets onmacos-latest).e2e-linux,rpm, anddebnowneeds: [build-tarball-linux].releasejob now needsbuild-tarball-linux,build-tarball-macos, andbuild-tarball-windows..github/workflows/registry.yml):name: Test toolsto thenick-fields/retrytest-tool step.Written by Cursor Bugbot for commit e91154d. This will update automatically on new commits. Configure here.