Repository navigation
Conversation
- Tests run under cargo-nextest (all binaries side by side) with a ci profile: no fail-fast, a retry that reports flaky tests, a hang timeout, and extra tries for the known flaky Telegram comments test. Doc tests run separately. - macOS tests the workspace once with the gui feature instead of twice. - macOS and Windows release builds run only on main; pull requests package Linux x86_64. Main also packages Linux aarch64 (tinyclient-linux-aarch64), without a cache. - The mobile host check moves into the Linux test job and shares its cache. - Mobile: one job per phone. iOS builds only the device slice as a staticlib; Android only the cdylib. Pull requests use the new ci-mobile profile (no LTO, 16 codegen units) and no cache; main and tags keep release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- native-tls on Windows imports every test certificate's key into one CryptoAPI container, so parallel mediad::voice processes broke each other's TLS handshake. They share a one-thread test group on Windows. - a_media_drop_finds_a_dead_socket_at_once fails on Linux whenever it runs without other chatd tests in its process (plain cargo test too), so the ci profile leaves it out until the test stands alone. - Mobile pull requests build release again and restore main's cache. The uncached ci-mobile profile took Android from about 11 to 19.7 minutes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A Windows runner stalled for a couple of minutes (a 20 MB download test took 131 seconds instead of 5), and the Discord tests retried straight away failed again inside the stall. Two retries, 15 and 30 seconds later. Co-Authored-By: Claude Opus 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.
CI and Mobile were slow for three reasons: the Actions cache was at its 10 GB cap and evicting, tests ran one binary at a time, and a pull request took four macOS runners. This PR changes the following:
ci.yml
ciprofile (.config/nextest.toml). It doesn't stop at the first failure, retries once and reports flaky tests, has a 10-minute hang timeout, and gives the flakya_channel_posts_comments_count_rides_the_posttest 3 tries. Doc tests run withcargo test --doc.--features tinyclient/guiinstead of two.ubuntu-22.04-armand uploads it astinyclient-linux-aarch64(samedist/*layout). It builds without a cache so it stays out of the 10 GB budget.cargo check -p tinyclient --features "gui mobile") moves into the Linux test job and uses its cache. That frees the 0.8 GBmobile-hostcache.mobile.yml
android-app,ios-app), so the library no longer goes through an artifact and a second runner queue. Artifact names are unchanged:tinyclient-android-debug,tinyclient-ios-unsigned.aarch64-apple-ios(build-ios.sh --device-only) as a staticlib. Android builds only the cdylib (cargo ndk … rustc --crate-type cdylib). Both stay on release and restore main's cache. The 16 KB and zipalign checks stay.ci-mobileprofile on PRs and dropped it. With no cache for that profile, Android took 19.7 min, against about 11 on release with main's cache..config/nextest.toml
mediad::voiceruns one test at a time. native-tls puts every test certificate's key into the same CryptoAPI container ("schannel"), so parallel processes broke each other's TLS handshakes.a_channel_posts_comments_count_rides_the_postgets 3 tries. Other failures get 2 retries, 15s and 30s apart. A Windows runner stalled for about two minutes once, and the immediate retries failed inside the stall.chatd adapters::tiny::live::tests::a_media_drop_finds_a_dead_socket_at_onceis left out of the CI run. On Linux it fails every time unless other chatd tests ran earlier in the same process. That includes plaincargo test -p chatd --lib a_media_drop_finds(reproduced on tiny-linux). It's a real test bug and needs its own fix.Before → after (wall time of each job. After = run 41563801102 / 41563801104. PRs don't save caches, and these jobs compiled cold because their build inputs changed. They should drop once main saves new caches.)
gui mobilecheck 7.1m (cold, no check artifacts in main's cache yet)🤖 Generated with Claude Code