ci: rebalance integration shards, tighten retries, drop unused coverage#17
Open
appflowy wants to merge 3 commits into
Open
ci: rebalance integration shards, tighten retries, drop unused coverage#17appflowy wants to merge 3 commits into
appflowy wants to merge 3 commits into
Conversation
- Run desktop_runner_16 (existed in the app repo but was missing from the matrix, so its BDD database/reminder tests never ran in CI). - Drop --coverage from integration and cloud integration tests; the lcov output was never uploaded or read, and instrumentation slows the test step measurably. - Emit package:test JSON timing per shard (--file-reporter) and upload it as an artifact, so shards can be rebalanced from real durations with rebalance_integration_shards.py in the app repo. - Reduce the whole-shard retry wrapper to 2 attempts / 40 min; flaky tests now retry individually via dart_test.yaml (retry: 2) instead of re-running an entire 15-25 min shard. - Move dart format + flutter analyze out of prepare-linux/macos into a dedicated flutter_analyze job so the 17 downstream test jobs stop waiting on it before the artifact upload. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 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.
Implements the CI wall-clock optimizations from reviewing run 28731719779, where shard durations spread 16.3–31.5+ min and everything gates on the slowest shard.
Merge after AppFlowy-IO/AppFlowy-Premium#1123, which adds the per-test retry (
dart_test.yaml) this PR's tighter retry wrapper relies on.Changes
desktop_runner_16: the file exists in the app repo but the matrix stopped at 15, so its tests (BDD database, reminder, duplicate-view) silently never ran in CI.--coveragefrom integration and cloud integration tests — the lcov output was never uploaded or consumed, and instrumentation slows the test step.--file-reporter json:output uploaded asintegration-test-timing-N(7-day retention), for analyzing shard balance when repackingdesktop_runner_N.dartfiles.dart_test.yaml), so whole-shard reruns are only an infra-failure safety net. Previously one flaky test at minute 25 silently added 25+ min to the run.flutter_analyzeas its own job:dart format+flutter analyzeran insideprepare-linux/prepare-macosbefore the artifact upload, so all 17+ downstream test jobs waited on them. They now run in parallel with the tests.Expected effect
Critical path drops from
prepare-linux (+analyze) → slowest-shard (up to 3×)toprepare-linux → slowest-shard (≤2×, usually 1×), and the timing artifacts make shard rebalancing data-driven going forward.🤖 Generated with Claude Code