perf(ci): overlap release validation and reuse macOS binaries - #298
Merged
Merged
Conversation
Start release compilation once signing credentials and web assets are ready, while retaining every validation prerequisite on publication. Avoid making the longest native build wait behind the full test matrix. Package macOS tarballs from the native job's compiled daemon, CLI and app instead of compiling a second release graph. Preserve standalone signing, notarization verification, archive names and checksums. Co-Authored-By: Nova (GPT-6) <noreply@openai.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe release workflow now builds native and Linux artifacts with fewer validation dependencies, packages signed macOS distributions in ChangesRelease pipeline
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Refactor Sequence Diagram(s)sequenceDiagram
participant ReleaseInputs
participant ValidationJobs
participant NativeApp as build-native-app
participant LinuxBuild as build-release
participant CreateRelease as create-release
ReleaseInputs->>NativeApp: Provide release-credentials and web-assets
ReleaseInputs->>LinuxBuild: Provide release-credentials and web-assets
ValidationJobs->>ValidationJobs: Run validation jobs in parallel
NativeApp->>NativeApp: Package macOS tarballs
LinuxBuild->>LinuxBuild: Build Linux artifacts
NativeApp->>CreateRelease: Provide native artifacts
LinuxBuild->>CreateRelease: Provide Linux artifacts
ValidationJobs->>CreateRelease: Provide validation results
CreateRelease->>CreateRelease: Publish release when dependencies succeed
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
Comment |
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.
What this changes
Release compilation now starts alongside validation. Each macOS native job produces both the installer and standalone tarball from its existing binaries.
Why
The v0.5.1 release waited roughly an hour for validation before starting its longest native build. Separate macOS installer and tarball jobs also compile overlapping binaries.
Verification
Workflow lint, 26 focused Node tests, and five distribution archive tests pass. Independent verification exercised the real distribution script for both architectures with a platform signer fixture and confirmed that every publication dependency is preserved. All live PR checks passed before merge, including Windows, both macOS architectures, Linux tests, and Servo/CPU E2E.
Unchecked gates below are not applicable to this workflow-only change. Native compilation and live Apple notarization require the macOS release runners.
just verifypasses locally (Rust fmt + lint + test)just denypasses (required for dependency or license changes)just ui-testandjust ui-buildpass (required forcrates/hypercolor-ui/)just sdk-lint,just sdk-check, andjust sdk-buildpass (required forsdk/)just python-verifypasses (required forpython/)just compat-checkpasses (required fordata/drivers/vendors/*.toml)just docs-buildpasses (required for docs or README changes)cd docs && zola checkpasses (required for docs link/content changes)scripts/orpackaging/)just e2e-buildpasses with the normal Servo stack (required for daemon/UI/effect integration changes)just e2e-build-cpupasses when validating the CPU smoke fallbackjust e2epasses against the Servo stack (required for end-to-end behavior changes; starts daemon/browser)Notes for reviewers
Artifact builds require signing preflight and web assets; publication requires all prior validation gates plus finished artifacts. Failed checks still prevent publishing.
The daemon and CLI come from the host release directory; the app comes from Tauri's explicit-target directory. The existing distribution script signs and verifies standalone binaries independently. Tarball filenames and checksums retain the format consumed by Homebrew.
Shipping optimization settings are unchanged. No release was dispatched for this change.
Summary by CodeRabbit