diff --git a/.circleci/config.yml b/.circleci/config.yml index 2ac4c1ef9..ff099df01 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -140,6 +140,9 @@ defaults: - checkout - attach_workspace: at: build + # NOTE: Different build jobs produce different soltest executables (release/debug, + # clang/gcc, windows/linux/macos, etc.). The executable used by these steps comes from the + # attached workspace and we only see the items added to the workspace by jobs we depend on. - run: *run_soltest - store_test_results: *store_test_results - store_artifacts: *artifacts_test_results @@ -162,22 +165,17 @@ defaults: - store_test_results: *store_test_results - store_artifacts: *artifacts_test_results - - test_ubuntu1604_clang: &test_ubuntu1604_clang + - base_ubuntu1604_clang: &base_ubuntu1604_clang docker: - image: << pipeline.parameters.ubuntu-1604-clang-ossfuzz-docker-image >> - <<: *steps_soltest - - test_ubuntu2004_clang: &test_ubuntu2004_clang + - base_ubuntu2004_clang: &base_ubuntu2004_clang docker: - image: << pipeline.parameters.ubuntu-2004-clang-docker-image >> - <<: *steps_soltest - - test_ubuntu2004: &test_ubuntu2004 + - base_ubuntu2004: &base_ubuntu2004 docker: - image: << pipeline.parameters.ubuntu-2004-docker-image >> - parallelism: 6 - <<: *steps_soltest_all - # -------------------------------------------------------------------------- # Workflow Templates @@ -531,7 +529,8 @@ jobs: - persist_to_workspace: *artifacts_executables t_ubu_codecov: - <<: *test_ubuntu2004 + <<: *base_ubuntu2004 + parallelism: 6 environment: EVM: << pipeline.parameters.evm-version >> OPTIMIZE: 1 @@ -578,7 +577,7 @@ jobs: - persist_to_workspace: *artifacts_executables_ossfuzz t_ubu_ossfuzz: &t_ubu_ossfuzz - <<: *test_ubuntu1604_clang + <<: *base_ubuntu1604_clang steps: - checkout - attach_workspace: @@ -717,8 +716,10 @@ jobs: path: docs/_build/html/ destination: docs-html - t_ubu_soltest: &t_ubu_soltest - <<: *test_ubuntu2004 + t_ubu_soltest_all: &t_ubu_soltest_all + <<: *base_ubuntu2004 + parallelism: 6 + <<: *steps_soltest_all t_archlinux_soltest: &t_archlinux_soltest docker: @@ -751,13 +752,16 @@ jobs: t_ubu_clang_soltest: &t_ubu_clang_soltest - <<: *test_ubuntu2004_clang + <<: *base_ubuntu2004_clang environment: EVM: << pipeline.parameters.evm-version >> OPTIMIZE: 0 + <<: *steps_soltest - t_ubu_release_soltest: &t_ubu_release_soltest - <<: *t_ubu_soltest + t_ubu_release_soltest_all: &t_ubu_release_soltest_all + # NOTE: This definition is identical to t_ubu_soltest_all but in the workflow we make it depend on + # a different job (b_ubu_release) so the workspace it attaches contains a different executable. + <<: *t_ubu_soltest_all t_ubu_cli: &t_ubu_cli docker: @@ -777,20 +781,23 @@ jobs: <<: *steps_cmdline_tests t_ubu_asan: - <<: *test_ubuntu2004 + <<: *base_ubuntu2004 + parallelism: 6 environment: EVM: << pipeline.parameters.evm-version >> OPTIMIZE: 0 SOLTEST_FLAGS: --no-smt ASAN_OPTIONS: check_initialization_order=true:detect_stack_use_after_return=true:strict_init_order=true:strict_string_checks=true:detect_invalid_pointer_pairs=2 + <<: *steps_soltest t_ubu_asan_clang: - <<: *test_ubuntu2004_clang + <<: *base_ubuntu2004_clang environment: EVM: << pipeline.parameters.evm-version >> OPTIMIZE: 0 SOLTEST_FLAGS: --no-smt ASAN_OPTIONS: check_initialization_order=true:detect_stack_use_after_return=true:strict_init_order=true:strict_string_checks=true:detect_invalid_pointer_pairs=2 + <<: *steps_soltest t_ubu_ubsan_clang: environment: @@ -1091,7 +1098,7 @@ workflows: # Ubuntu build and tests - b_ubu: *workflow_trigger_on_tags - t_ubu_cli: *workflow_ubuntu2004 - - t_ubu_soltest: *workflow_ubuntu2004 + - t_ubu_soltest_all: *workflow_ubuntu2004 - t_ubu_soltest_enforce_yul: *workflow_ubuntu2004 - b_ubu_clang: *workflow_trigger_on_tags - t_ubu_clang_soltest: *workflow_ubuntu2004_clang @@ -1099,7 +1106,7 @@ workflows: # Ubuntu fake release build and tests - b_ubu_release: *workflow_trigger_on_tags - t_ubu_release_cli: *workflow_ubuntu2004_release - - t_ubu_release_soltest: *workflow_ubuntu2004_release + - t_ubu_release_soltest_all: *workflow_ubuntu2004_release # Emscripten build and tests that take 15 minutes or less - b_ems: *workflow_trigger_on_tags