Skip to content
This repository was archived by the owner on Aug 2, 2022. It is now read-only.

Ensure that all stability test rounds continue even if early rounds exhibit failures. #10631

Merged
merged 2 commits into from
Aug 19, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions .cicd/eosio-test-stability.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,15 @@ The [eosio-test-stability](https://buildkite.com/EOSIO/eosio-test-stability) pip
### Variables
There are five primary environment variables relevant to stability testing:
```bash
PINNED='true|false' # whether to perform the test with pinned dependencies, or default dependencies
ROUNDS='ℕ' # natural number defining the number of gated rounds of tests to generate
ROUND_SIZE='ℕ' # number of test steps to generate per operating system, per round
SKIP_MAC='true|false' # conserve finite macOS Anka agents by excluding them from your testing
TEST='name' # PCRE expression defining the tests to run, preceded by '^' and followed by '$'
TIMEOUT='ℕ' # set timeout in minutes for all Buildkite steps
CONTINUE_ON_FAILURE='true|false' # by default, only scheduled builds will continue to the following round if
# any test fails for the current round; however, this setting can be explicitly
# overriden by setting this variable to 'true'.
PINNED='true|false' # whether to perform the test with pinned dependencies, or default dependencies
ROUNDS='ℕ' # natural number defining the number of gated rounds of tests to generate
ROUND_SIZE='ℕ' # number of test steps to generate per operating system, per round
SKIP_MAC='true|false' # conserve finite macOS Anka agents by excluding them from your testing
TEST='name' # PCRE expression defining the tests to run, preceded by '^' and followed by '$'
TIMEOUT='ℕ' # set timeout in minutes for all Buildkite steps
```
The `TEST` variable is parsed as [pearl-compatible regular expression](https://www.debuggex.com/cheatsheet/regex/pcre) where the expression in `TEST` is preceded by `^` and followed by `$`. To specify one test, set `TEST` equal to the test name (e.g. `TEST='read_only_query'`). Specify two tests as `TEST='(nodeos_short_fork_take_over_lr_test|read_only_query)'`. Or, perhaps, you want all of the `restart_scenarios` tests. Then, you could define `TEST='restart-scenario-test-.*'` and Buildkite will generate `ROUND_SIZE` steps each round for each operating system for all three restart scenarios tests.

Expand Down
5 changes: 3 additions & 2 deletions .cicd/generate-pipeline.sh
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,8 @@ EOF
done
IFS=$oIFS
if [[ "$ROUND" != "$ROUNDS" ]]; then
echo ' - wait'
echo ' - wait: ~'
[[ "$BUILDKITE_SOURCE" == 'schedule' || "$CONTINUE_ON_FAILURE" == 'true' ]] && echo ' continue_on_failure: true'
echo ''
fi
done
Expand Down Expand Up @@ -533,7 +534,7 @@ EOF
fi
# pipeline tail
cat <<EOF
- wait:
- wait: ~
continue_on_failure: true

- label: ":bar_chart: Test Metrics"
Expand Down