Skip to content

chore(ci): parallelize release workflow to start e2e tests earlier#6491

Merged
jdx merged 2 commits intomainfrom
chore/parallelize-release-workflow
Sep 30, 2025
Merged

chore(ci): parallelize release workflow to start e2e tests earlier#6491
jdx merged 2 commits intomainfrom
chore/parallelize-release-workflow

Conversation

@jdx
Copy link
Owner

@jdx jdx commented Sep 30, 2025

Summary

  • Split build-tarball job into separate build-tarball-linux and build-tarball-macos jobs
  • Updated e2e-linux, rpm, and deb jobs to depend only on build-tarball-linux
  • Updated release job to depend on both build-tarball-macos and build-tarball-windows
  • Added name to test-tool retry step in registry workflow

Motivation

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

  • Verify workflow runs successfully
  • Confirm e2e tests start after Linux builds complete
  • Confirm macOS builds run in parallel with e2e tests

🤖 Generated with Claude Code


Note

Split build-tarball into build-tarball-linux and build-tarball-macos, updated dependent jobs to rely on Linux builds, and named the test-tool retry step in the registry workflow.

  • CI/Workflows:
    • Release (.github/workflows/release.yml):
      • Split build-tarball into build-tarball-linux (Linux targets on ubuntu-latest) and build-tarball-macos (macOS targets on macos-latest).
      • Updated dependencies: e2e-linux, rpm, and deb now needs: [build-tarball-linux].
      • release job now needs build-tarball-linux, build-tarball-macos, and build-tarball-windows.
    • Registry (.github/workflows/registry.yml):
      • Added name: Test tools to the nick-fields/retry test-tool step.

Written by Cursor Bugbot for commit e91154d. This will update automatically on new commits. Configure here.

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>
Copilot AI review requested due to automatic review settings September 30, 2025 16:15
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-tarball job 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
Copy link

Copilot AI Sep 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
- e2e-linux
- e2e-linux
- build-tarball-linux

Copilot uses AI. Check for mistakes.
Ensure Linux build artifacts are available before release.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@jdx jdx merged commit e4f5b99 into main Sep 30, 2025
35 checks passed
@jdx jdx deleted the chore/parallelize-release-workflow branch September 30, 2025 16:22
@jdx jdx mentioned this pull request Sep 30, 2025
@github-actions
Copy link

Hyperfine Performance

mise x -- echo

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%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants