Repository navigation
Conversation
…hing A pull request now runs Linux only, with the tests split three ways (nextest --partition hash), and skips the release build unless the change touches packaging, Cargo.toml or Cargo.lock. macOS and Windows tests, the other release programs and doc tests on those platforms run on every push to main and on a manual dispatch, which is what a release already waits for. The measured problem: a PR waited 26-30 minutes on a macOS test job that rebuilt cold whenever the 10 GB cache had evicted it, and 12-28 on Windows, while Linux took 9. The tests are CPU-bound (about 1,300 CPU-seconds), so they scale with runners. Docs, site and the review and pr-gate tooling no longer start the Rust matrix at all. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The first run of the three-shard split measured 4.2-6.1 minutes per shard (1.9-3.0 of tests, uneven because hash partitions by test count, not time). Five shards bring the slowest under five minutes. Main keeps three. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ilds every release program Resolves the ci.yml conflict with #241: Linux entries carry --features tinyclient/gui (as #241 turned it on, so main writes the cache pull requests restore), the extras job builds and doc-tests with it, and package keys on != pull_request so a dispatch builds all four, as the header says. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.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.
What changed and why
A PR took 26-50 minutes to go green. Measured over the last 30 days (800 tinyclient runs): the macOS test job rebuilt from nothing whenever the 10 GB Actions cache had evicted it (16-19 min of build instead of 4.6), Windows took 12-28 min, and Linux took 9. The release build and packaging ran on every PR too. Details in the thread.
Now:
cargo nextest --partition hash:N/3, plus one parallel job for Linux doc tests and the mobile check. The release build and packaging run only when the change touchespackaging/,.github/actions/,Cargo.toml,Cargo.lockor this file (the newchangesjob decides).gh workflow run ci.yml --ref <branch>, run everything: Linux (3 shards), macOS and Windows (2 shards each), every release program. A release already waits for main's run, so nothing it relies on changed..github/scriptsor the pr-review workflows no longer start the Rust matrix.Type
Platforms
Proof
CI itself. This pull request's own run is the evidence; the numbers are in the comment below once it finishes.
Scenario: none (chore)
Compatibility
No app change.
release.yml,release-cut.shandreuse-binaries.shread main's push run ofci.ymland its package artifacts, which are unchanged. Thetest (...)check names now carry a shard (test (ubuntu-22.04 1/3)). Nothing is a required check today.Risk and rollback
A platform-only break (macOS or Windows) in a PR is now caught on main's push run, not before the merge, or earlier by dispatching the workflow on the branch. Revert this commit to go back.
Release note
None.
🤖 Generated with Claude Code