Skip to content

Commit

Permalink
Parallelize external test runs on CircleCI
Browse files Browse the repository at this point in the history
  • Loading branch information
cameel committed Nov 9, 2021
1 parent fbc48e3 commit 834f9d3
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 5 deletions.
2 changes: 2 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -943,6 +943,8 @@ jobs:
default: 14
docker:
- image: circleci/node:<<parameters.nodejs_version>>
# NOTE: Each external test does 3 separate compile&test runs
parallelism: 3
environment:
TERM: xterm
COMPILE_ONLY: <<parameters.compile_only>>
Expand Down
6 changes: 5 additions & 1 deletion test/externalTests/colony.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ function colony_test
local min_optimizer_level=3
local max_optimizer_level=3

local selected_optimizer_levels
selected_optimizer_levels=$(circleci_select_steps "$(seq "$min_optimizer_level" "$max_optimizer_level")")
print_optimizer_levels_or_exit "$selected_optimizer_levels"

setup_solcjs "$DIR" "$SOLJSON"
download_project "$repo" "$branch" "$DIR"

Expand All @@ -54,7 +58,7 @@ function colony_test
replace_version_pragmas
force_solc_modules "${DIR}/solc"

for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do
for level in $selected_optimizer_levels; do
truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn
done
}
Expand Down
9 changes: 9 additions & 0 deletions test/externalTests/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,15 @@ set -e

CURRENT_EVM_VERSION=london

function print_optimizer_levels_or_exit
{
local selected_levels="$1"

[[ $selected_levels != "" ]] || { printWarning "No steps to run. Exiting."; exit 0; }

printLog "Selected optimizer levels: ${selected_levels}"
}

function verify_input
{
if [ ! -f "$1" ]; then
Expand Down
6 changes: 5 additions & 1 deletion test/externalTests/ens.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ function ens_test
local min_optimizer_level=1
local max_optimizer_level=3

local selected_optimizer_levels
selected_optimizer_levels=$(circleci_select_steps "$(seq "$min_optimizer_level" "$max_optimizer_level")")
print_optimizer_levels_or_exit "$selected_optimizer_levels"

setup_solcjs "$DIR" "$SOLJSON"
download_project "$repo" "$branch" "$DIR"

Expand All @@ -52,7 +56,7 @@ function ens_test
replace_version_pragmas
force_solc_modules "${DIR}/solc"

for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do
for level in $selected_optimizer_levels; do
truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn
done
}
Expand Down
6 changes: 5 additions & 1 deletion test/externalTests/gnosis-v2.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ function gnosis_safe_test
local min_optimizer_level=2
local max_optimizer_level=3

local selected_optimizer_levels
selected_optimizer_levels=$(circleci_select_steps "$(seq "$min_optimizer_level" "$max_optimizer_level")")
print_optimizer_levels_or_exit "$selected_optimizer_levels"

setup_solcjs "$DIR" "$SOLJSON"
download_project "$repo" "$branch" "$DIR"

Expand All @@ -53,7 +57,7 @@ function gnosis_safe_test
replace_version_pragmas
force_solc_modules "${DIR}/solc"

for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do
for level in $selected_optimizer_levels; do
truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn
done
}
Expand Down
6 changes: 5 additions & 1 deletion test/externalTests/gnosis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ function gnosis_safe_test
local min_optimizer_level=2
local max_optimizer_level=3

local selected_optimizer_levels
selected_optimizer_levels=$(circleci_select_steps "$(seq "$min_optimizer_level" "$max_optimizer_level")")
print_optimizer_levels_or_exit "$selected_optimizer_levels"

setup_solcjs "$DIR" "$SOLJSON"
download_project "$repo" "$branch" "$DIR"

Expand All @@ -51,7 +55,7 @@ function gnosis_safe_test
replace_version_pragmas
force_solc_modules "${DIR}/solc"

for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do
for level in $selected_optimizer_levels; do
truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn
done
}
Expand Down
6 changes: 5 additions & 1 deletion test/externalTests/zeppelin.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ function zeppelin_test
local min_optimizer_level=1
local max_optimizer_level=3

local selected_optimizer_levels
selected_optimizer_levels=$(circleci_select_steps "$(seq "$min_optimizer_level" "$max_optimizer_level")")
print_optimizer_levels_or_exit "$selected_optimizer_levels"

setup_solcjs "$DIR" "$SOLJSON"
download_project "$repo" "$branch" "$DIR"

Expand All @@ -48,7 +52,7 @@ function zeppelin_test
replace_version_pragmas
force_solc_modules "${DIR}/solc"

for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do
for level in $selected_optimizer_levels; do
truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn
done
}
Expand Down

0 comments on commit 834f9d3

Please sign in to comment.