ci: add retries to e2e install/setup steps to reduce canary flakiness#14876
Open
bobbor wants to merge 4 commits into
Open
ci: add retries to e2e install/setup steps to reduce canary flakiness#14876bobbor wants to merge 4 commits into
bobbor wants to merge 4 commits into
Conversation
|
soberm
approved these changes
Jul 17, 2026
osama-rizk
approved these changes
Jul 17, 2026
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.
Description of changes
The daily
on-schedule-canary-test.ymlcanaries have been failing intermittently (4 of the last 15 runs, each a different suite). All but one failure were transient network errors during dependency install/setup steps — theretry_count: 3input only wraps test execution, while install/setup steps had no retry:integ_react_storagerun: yarn— better-sqlite3 prebuild download timeout, thengetaddrinfo EAI_AGAIN nodejs.orgduring node-gyp fallbackinteg_react_graphql_api,integ_react_datastore_selective_syncFailed to download binary (statusCode 504): Gateway Time-outinteg_rollup_datastore_basic_crudChanges:
.github/workflows/callable-canary-e2e-tests.yml: theInstallstep now uses the repo's existingscripts/retry-yarn-script.sh -s install -n 3(same pattern ascallable-e2e-test-detox.yml) instead of a bareyarn..github/actions/setup-samples-staging/action.yml: the staging-branch selection is wrapped in a 3-attempt retry loop that distinguishes a genuinely missing branch (git ls-remote --exit-code→ 2, falls back to default branch, no retry) from transient git/network failures (e.g. exit 128, retried). Emits a::warning::annotation if retries are exhausted.The test-execution retry logic consuming
retry_countis unchanged.Validation
yaml.safe_load).bash -e -o pipefailwith a mockedgitcovering: branch exists (checkout), branch missing (rc=2 → default branch), transient rc=128 (retries then falls back), fetch failure after successful ls-remote (retries).Out of scope
integ_react_datastore_multi_auth_three_plus_rules, Cypress assertion'Current User: test01'never rendered) is a genuine test-level flake not addressed by install retries.callable-canary-sampleapp-tests.ymlstill has unretriednpx create-react-app/npm installsteps — candidate for a follow-up.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.