ci: slim PR pipelines to Linux-only for fast feedback#103
Merged
danielmeppiel merged 4 commits intomainfrom Feb 25, 2026
Merged
ci: slim PR pipelines to Linux-only for fast feedback#103danielmeppiel merged 4 commits intomainfrom
danielmeppiel merged 4 commits intomainfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR optimizes the PR CI/CD pipeline by reducing it from a 4-platform matrix to Linux-only execution, cutting feedback time from 45+ minutes to ~3 minutes. The change addresses macOS runner queue delays (20-40+ min) that were blocking the entire PR pipeline due to sequential job dependencies. The full 4-platform matrix (Linux x86_64/arm64, Darwin x86_64/arm64) continues to run post-merge via build-release.yml, providing comprehensive platform coverage where queue time doesn't impact developer velocity.
Changes:
- Converted PR workflows to Linux-only (ubuntu-24.04) for fast feedback
- Maintained full 4-platform matrix in build-release.yml for post-merge validation
- Updated documentation to reflect platform testing strategy
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| .github/workflows/ci.yml | Removed 4-platform matrix from test and build jobs; now runs only on ubuntu-24.04 with single apm-linux-x86_64 artifact |
| .github/workflows/ci-integration.yml | Removed 4-platform matrix from smoke-test, integration-tests, and release-validation jobs; downloads single Linux binary artifact |
| .github/instructions/cicd.instructions.md | Documented Linux-only PR strategy, full platform matrix post-merge approach, and performance rationale |
| .github/copilot-instructions.md | Updated project maturity description (microsoft org, 250+ stars, external contributors) |
- ci.yml: replace 4-platform matrix with single ubuntu-24.04 for both test and build jobs. Eliminates macOS runner queue delays (20-40+ min). - ci-integration.yml: match Linux-only for smoke-test, integration-tests, and release-validation jobs (downloads single Linux artifact from ci.yml). - build-release.yml: unchanged — full 4-platform matrix post-merge/release. - Update cicd.instructions.md to document platform testing strategy. - Update copilot-instructions.md to reflect project maturity (microsoft org, 250+ stars, external contributors).
6231218 to
244808d
Compare
…nal PRs GitHub Actions' default success() evaluator walks the transitive dependency chain. When approve-fork is skipped (expected for internal PRs), downstream jobs without explicit if conditions inherit the skip even though smoke-test succeeded. Add explicit if conditions checking only direct dependency results.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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
Reduces PR CI from 4-platform matrix (linux x86_64, linux arm64, darwin x86_64, darwin arm64) to Linux-only across both
ci.ymlandci-integration.yml. Full 4-platform matrix continues to run post-merge viabuild-release.yml.Fixes Integration pipeline which would always report failure for non-fork PRs.
Problem
macOS GitHub-hosted runners frequently queue for 20-40+ minutes, making the entire PR pipeline (test → build → integration) take 45+ minutes. Since
ci.ymlusesneeds: [test]andci-integration.ymltriggers viaworkflow_run, every stage is blocked by the slowest platform.Solution
Follow the same pattern used by popular multi-platform OSS projects (ripgrep, uv):
ci.ymltestci.ymlbuildci-integration.yml(all jobs)build-release.ymlRationale:
build-release.ymlhasworkflow_dispatchfor manual full-platform runs when neededChanges
.github/workflows/ci.yml: Replaced 4-platform matrix with singleubuntu-24.04for both test and build jobs.github/workflows/ci-integration.yml: Replaced 4-platform matrix with singleubuntu-24.04for smoke-test, integration-tests, and release-validation jobs.github/instructions/cicd.instructions.md: Documented platform testing strategy and updated workflow descriptions.github/copilot-instructions.md: Updated project maturity description (microsoft org, 250+ stars, external contributors)Expected impact
PR feedback time: ~3 min (down from 45+ min with macOS queue)