-
Notifications
You must be signed in to change notification settings - Fork 33
test(e2e): improve reliability, parallelism, and CI caching #995
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
c75ce86
46e0064
1130964
0624d5c
2a45134
f33d4fa
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| name: Read tool versions from Makefile | ||
| description: Export KIND_VERSION, KUSTOMIZE_VERSION, and GRPCURL_VERSION from controller/Makefile into $GITHUB_ENV | ||
| runs: | ||
| using: composite | ||
| steps: | ||
| - run: sed -nE 's/^(KIND_VERSION|KUSTOMIZE_VERSION|GRPCURL_VERSION) \?= (.*)/\1=\2/p' controller/Makefile >> "$GITHUB_ENV" | ||
| shell: bash |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -79,7 +79,23 @@ run_ginkgo() { | |
| timeout="60m" | ||
| fi | ||
|
|
||
| local flags=(-v --show-node-events --trace --timeout "${timeout}") | ||
| # Retry a failed spec instead of failing the whole suite. The e2e suite talks | ||
| # to a real cluster over the network, so a spec can fail for reasons that have | ||
| # nothing to do with the code under test (a slow DNS answer, a pod scheduled | ||
| # late, a router connection dropped). A retried spec is still reported as | ||
| # flaky in the summary, so genuine instability stays visible. | ||
| local flake_attempts="${E2E_FLAKE_ATTEMPTS:-1}" | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we should set it to 2, since ginkgo treats it as the total number of runs rather than the number of retries, otherwise we'll end up with the same behavior as before.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we have it set to 2 in the workflow yaml, it will default to 1 only for local testing and such |
||
|
|
||
| # Run top-level containers concurrently when asked. Off by default: the | ||
| # suite shares one cluster and one runner, so more processes is not free. | ||
| # Containers that touch host-global state or the shared client config are | ||
| # marked Serial and still run one at a time, after the parallel ones. | ||
| local procs="${E2E_PROCS:-1}" | ||
|
|
||
| local flags=(-v --show-node-events --trace --timeout "${timeout}" --flake-attempts "${flake_attempts}") | ||
| if [ "${procs}" -gt 1 ]; then | ||
| flags+=(--procs "${procs}") | ||
| fi | ||
| if [ -n "$label_filter" ]; then | ||
| flags+=(--label-filter "$label_filter") | ||
| fi | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice addition! :)