mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
CI: Convert multi-step templates into proper commands
This commit is contained in:
parent
3d9f633bcd
commit
e57581e730
@ -298,6 +298,75 @@ commands:
|
|||||||
path: test_results/
|
path: test_results/
|
||||||
destination: test_results/
|
destination: test_results/
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Complex Build Commands
|
||||||
|
|
||||||
|
soltest:
|
||||||
|
steps:
|
||||||
|
- 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_soltest
|
||||||
|
- store_test_results:
|
||||||
|
path: test_results/
|
||||||
|
- store_artifacts_test_results
|
||||||
|
- matrix_notify_failure_unless_pr
|
||||||
|
|
||||||
|
test_lsp:
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- attach_workspace:
|
||||||
|
at: build
|
||||||
|
- run:
|
||||||
|
name: Install dependencies
|
||||||
|
command: pip install --user deepdiff colorama
|
||||||
|
- run:
|
||||||
|
name: Executing solc LSP test suite
|
||||||
|
command: ./test/lsp.py ./build/solc/solc --non-interactive
|
||||||
|
- matrix_notify_failure_unless_pr
|
||||||
|
|
||||||
|
build:
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run_build
|
||||||
|
- store_artifacts_solc
|
||||||
|
- store_artifacts_yul_phaser
|
||||||
|
- persist_executables_to_workspace
|
||||||
|
- matrix_notify_failure_unless_pr
|
||||||
|
|
||||||
|
soltest_all:
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- attach_workspace:
|
||||||
|
at: build
|
||||||
|
- run_soltest_all
|
||||||
|
- store_test_results:
|
||||||
|
path: test_results/
|
||||||
|
- store_artifacts_test_results
|
||||||
|
- matrix_notify_failure_unless_pr
|
||||||
|
|
||||||
|
cmdline_tests:
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- attach_workspace:
|
||||||
|
at: build
|
||||||
|
- run_cmdline_tests
|
||||||
|
- store_test_results:
|
||||||
|
path: test_results/
|
||||||
|
- store_artifacts_test_results
|
||||||
|
- matrix_notify_failure_unless_pr
|
||||||
|
|
||||||
|
install_dependencies_osx:
|
||||||
|
steps:
|
||||||
|
# FIXME: We used to cache dependencies on macOS but now it takes longer than just installing
|
||||||
|
# them each time. See https://github.com/ethereum/solidity/issues/12925.
|
||||||
|
- run:
|
||||||
|
name: Install build dependencies
|
||||||
|
command: ./.circleci/osx_install_dependencies.sh
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
|
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
@ -320,74 +389,6 @@ defaults:
|
|||||||
- via-ir-no-optimize
|
- via-ir-no-optimize
|
||||||
|
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# Step Templates
|
|
||||||
|
|
||||||
- steps_soltest: &steps_soltest
|
|
||||||
steps:
|
|
||||||
- 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_soltest
|
|
||||||
- store_test_results:
|
|
||||||
path: test_results/
|
|
||||||
- store_artifacts_test_results
|
|
||||||
- matrix_notify_failure_unless_pr
|
|
||||||
|
|
||||||
- steps_test_lsp: &steps_test_lsp
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- attach_workspace:
|
|
||||||
at: build
|
|
||||||
- run:
|
|
||||||
name: Install dependencies
|
|
||||||
command: pip install --user deepdiff colorama
|
|
||||||
- run:
|
|
||||||
name: Executing solc LSP test suite
|
|
||||||
command: ./test/lsp.py ./build/solc/solc --non-interactive
|
|
||||||
- matrix_notify_failure_unless_pr
|
|
||||||
|
|
||||||
- steps_build: &steps_build
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- run_build
|
|
||||||
- store_artifacts_solc
|
|
||||||
- store_artifacts_yul_phaser
|
|
||||||
- persist_executables_to_workspace
|
|
||||||
- matrix_notify_failure_unless_pr
|
|
||||||
|
|
||||||
- steps_soltest_all: &steps_soltest_all
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- attach_workspace:
|
|
||||||
at: build
|
|
||||||
- run_soltest_all
|
|
||||||
- store_test_results:
|
|
||||||
path: test_results/
|
|
||||||
- store_artifacts_test_results:
|
|
||||||
- matrix_notify_failure_unless_pr
|
|
||||||
|
|
||||||
- steps_cmdline_tests: &steps_cmdline_tests
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- attach_workspace:
|
|
||||||
at: build
|
|
||||||
- run_cmdline_tests
|
|
||||||
- store_test_results:
|
|
||||||
path: test_results/
|
|
||||||
- store_artifacts_test_results:
|
|
||||||
- matrix_notify_failure_unless_pr
|
|
||||||
|
|
||||||
- steps_install_dependencies_osx: &steps_install_dependencies_osx
|
|
||||||
steps:
|
|
||||||
# FIXME: We used to cache dependencies on macOS but now it takes longer than just installing
|
|
||||||
# them each time. See https://github.com/ethereum/solidity/issues/12925.
|
|
||||||
- run:
|
|
||||||
name: Install build dependencies
|
|
||||||
command: ./.circleci/osx_install_dependencies.sh
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# Base Image Templates
|
# Base Image Templates
|
||||||
|
|
||||||
@ -932,7 +933,8 @@ jobs:
|
|||||||
# this runs 2x faster on xlarge but takes 4x more resources (compared to medium).
|
# this runs 2x faster on xlarge but takes 4x more resources (compared to medium).
|
||||||
# Enough other jobs depend on it that it's worth it though.
|
# Enough other jobs depend on it that it's worth it though.
|
||||||
<<: *base_ubuntu2204_xlarge
|
<<: *base_ubuntu2204_xlarge
|
||||||
<<: *steps_build
|
steps:
|
||||||
|
- build
|
||||||
|
|
||||||
# x64 ASAN build, for testing for memory related bugs
|
# x64 ASAN build, for testing for memory related bugs
|
||||||
b_ubu_asan: &b_ubu_asan
|
b_ubu_asan: &b_ubu_asan
|
||||||
@ -942,14 +944,16 @@ jobs:
|
|||||||
<<: *base_ubuntu2204_env
|
<<: *base_ubuntu2204_env
|
||||||
CMAKE_OPTIONS: -DSANITIZE=address
|
CMAKE_OPTIONS: -DSANITIZE=address
|
||||||
CMAKE_BUILD_TYPE: Release
|
CMAKE_BUILD_TYPE: Release
|
||||||
<<: *steps_build
|
steps:
|
||||||
|
- build
|
||||||
|
|
||||||
b_ubu_clang: &b_ubu_clang
|
b_ubu_clang: &b_ubu_clang
|
||||||
<<: *base_ubuntu2204_clang_large
|
<<: *base_ubuntu2204_clang_large
|
||||||
environment:
|
environment:
|
||||||
<<: *base_ubuntu2204_clang_large_env
|
<<: *base_ubuntu2204_clang_large_env
|
||||||
MAKEFLAGS: -j 10
|
MAKEFLAGS: -j 10
|
||||||
<<: *steps_build
|
steps:
|
||||||
|
- build
|
||||||
|
|
||||||
b_ubu_san_clang:
|
b_ubu_san_clang:
|
||||||
# This runs a bit faster on large and xlarge but on nightly efficiency matters more.
|
# This runs a bit faster on large and xlarge but on nightly efficiency matters more.
|
||||||
@ -960,7 +964,8 @@ jobs:
|
|||||||
environment:
|
environment:
|
||||||
<<: *base_ubuntu2204_clang_env
|
<<: *base_ubuntu2204_clang_env
|
||||||
CMAKE_OPTIONS: << parameters.cmake_options >>
|
CMAKE_OPTIONS: << parameters.cmake_options >>
|
||||||
<<: *steps_build
|
steps:
|
||||||
|
- build
|
||||||
|
|
||||||
b_ubu_force_release: &b_ubu_force_release
|
b_ubu_force_release: &b_ubu_force_release
|
||||||
<<: *b_ubu
|
<<: *b_ubu
|
||||||
@ -1092,9 +1097,7 @@ jobs:
|
|||||||
CMAKE_BUILD_TYPE: Release
|
CMAKE_BUILD_TYPE: Release
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- when:
|
- install_dependencies_osx
|
||||||
condition: true
|
|
||||||
<<: *steps_install_dependencies_osx
|
|
||||||
- run_build
|
- run_build
|
||||||
- store_artifacts_solc
|
- store_artifacts_solc
|
||||||
- store_artifacts_yul_phaser
|
- store_artifacts_yul_phaser
|
||||||
@ -1114,9 +1117,7 @@ jobs:
|
|||||||
OPTIMIZE: 0
|
OPTIMIZE: 0
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- when:
|
- install_dependencies_osx
|
||||||
condition: true
|
|
||||||
<<: *steps_install_dependencies_osx
|
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: .
|
at: .
|
||||||
- run_soltest
|
- run_soltest
|
||||||
@ -1130,9 +1131,7 @@ jobs:
|
|||||||
parallelism: 7 # Should match number of tests in .circleci/cli.sh
|
parallelism: 7 # Should match number of tests in .circleci/cli.sh
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- when:
|
- install_dependencies_osx
|
||||||
condition: true
|
|
||||||
<<: *steps_install_dependencies_osx
|
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: .
|
at: .
|
||||||
- run_cmdline_tests
|
- run_cmdline_tests
|
||||||
@ -1179,11 +1178,13 @@ jobs:
|
|||||||
t_ubu_soltest_all: &t_ubu_soltest_all
|
t_ubu_soltest_all: &t_ubu_soltest_all
|
||||||
<<: *base_ubuntu2204_large
|
<<: *base_ubuntu2204_large
|
||||||
parallelism: 50
|
parallelism: 50
|
||||||
<<: *steps_soltest_all
|
steps:
|
||||||
|
- soltest_all
|
||||||
|
|
||||||
t_ubu_lsp: &t_ubu_lsp
|
t_ubu_lsp: &t_ubu_lsp
|
||||||
<<: *base_ubuntu2204_small
|
<<: *base_ubuntu2204_small
|
||||||
<<: *steps_test_lsp
|
steps:
|
||||||
|
- test_lsp
|
||||||
|
|
||||||
t_archlinux_soltest: &t_archlinux_soltest
|
t_archlinux_soltest: &t_archlinux_soltest
|
||||||
<<: *base_archlinux
|
<<: *base_archlinux
|
||||||
@ -1200,9 +1201,7 @@ jobs:
|
|||||||
name: Install runtime dependencies
|
name: Install runtime dependencies
|
||||||
command: |
|
command: |
|
||||||
pacman --noconfirm -Syu --noprogressbar --needed base-devel boost cmake z3 cvc4 git openssh tar
|
pacman --noconfirm -Syu --noprogressbar --needed base-devel boost cmake z3 cvc4 git openssh tar
|
||||||
- when:
|
- soltest
|
||||||
condition: true
|
|
||||||
<<: *steps_soltest
|
|
||||||
|
|
||||||
t_ubu_clang_soltest: &t_ubu_clang_soltest
|
t_ubu_clang_soltest: &t_ubu_clang_soltest
|
||||||
<<: *base_ubuntu2204_clang
|
<<: *base_ubuntu2204_clang
|
||||||
@ -1214,7 +1213,8 @@ jobs:
|
|||||||
# The high parallelism in this job is causing the SMT tests to run out of memory,
|
# The high parallelism in this job is causing the SMT tests to run out of memory,
|
||||||
# so disabling for now.
|
# so disabling for now.
|
||||||
SOLTEST_FLAGS: --no-smt
|
SOLTEST_FLAGS: --no-smt
|
||||||
<<: *steps_soltest
|
steps:
|
||||||
|
- soltest
|
||||||
|
|
||||||
t_ubu_force_release_soltest_all: &t_ubu_force_release_soltest_all
|
t_ubu_force_release_soltest_all: &t_ubu_force_release_soltest_all
|
||||||
# NOTE: This definition is identical to t_ubu_soltest_all but in the workflow we make it depend on
|
# NOTE: This definition is identical to t_ubu_soltest_all but in the workflow we make it depend on
|
||||||
@ -1224,7 +1224,8 @@ jobs:
|
|||||||
t_ubu_cli: &t_ubu_cli
|
t_ubu_cli: &t_ubu_cli
|
||||||
<<: *base_ubuntu2204_small
|
<<: *base_ubuntu2204_small
|
||||||
parallelism: 7 # Should match number of tests in .circleci/cli.sh
|
parallelism: 7 # Should match number of tests in .circleci/cli.sh
|
||||||
<<: *steps_cmdline_tests
|
steps:
|
||||||
|
- cmdline_tests
|
||||||
|
|
||||||
t_ubu_force_release_cli: &t_ubu_force_release_cli
|
t_ubu_force_release_cli: &t_ubu_force_release_cli
|
||||||
<<: *t_ubu_cli
|
<<: *t_ubu_cli
|
||||||
@ -1248,7 +1249,8 @@ jobs:
|
|||||||
# Suppress CLN memory leak.
|
# Suppress CLN memory leak.
|
||||||
# See: https://github.com/ethereum/solidity/issues/13891 for details.
|
# See: https://github.com/ethereum/solidity/issues/13891 for details.
|
||||||
LSAN_OPTIONS: suppressions=/root/project/.circleci/cln-asan.supp:print_suppressions=0
|
LSAN_OPTIONS: suppressions=/root/project/.circleci/cln-asan.supp:print_suppressions=0
|
||||||
<<: *steps_cmdline_tests
|
steps:
|
||||||
|
- cmdline_tests
|
||||||
|
|
||||||
t_ubu_asan_soltest:
|
t_ubu_asan_soltest:
|
||||||
<<: *base_ubuntu2204
|
<<: *base_ubuntu2204
|
||||||
@ -1262,7 +1264,8 @@ jobs:
|
|||||||
# Suppress CLN memory leak.
|
# Suppress CLN memory leak.
|
||||||
# See: https://github.com/ethereum/solidity/issues/13891 for details.
|
# See: https://github.com/ethereum/solidity/issues/13891 for details.
|
||||||
LSAN_OPTIONS: suppressions=/root/project/.circleci/cln-asan.supp
|
LSAN_OPTIONS: suppressions=/root/project/.circleci/cln-asan.supp
|
||||||
<<: *steps_soltest
|
steps:
|
||||||
|
- soltest
|
||||||
|
|
||||||
t_ubu_asan_clang_soltest:
|
t_ubu_asan_clang_soltest:
|
||||||
<<: *base_ubuntu2204_clang
|
<<: *base_ubuntu2204_clang
|
||||||
@ -1273,7 +1276,8 @@ jobs:
|
|||||||
OPTIMIZE: 0
|
OPTIMIZE: 0
|
||||||
SOLTEST_FLAGS: --no-smt
|
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
|
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
|
steps:
|
||||||
|
- soltest
|
||||||
|
|
||||||
t_ubu_ubsan_clang_soltest:
|
t_ubu_ubsan_clang_soltest:
|
||||||
<<: *base_ubuntu2204_clang
|
<<: *base_ubuntu2204_clang
|
||||||
@ -1282,12 +1286,14 @@ jobs:
|
|||||||
<<: *base_ubuntu2204_clang_env
|
<<: *base_ubuntu2204_clang_env
|
||||||
EVM: << pipeline.parameters.evm-version >>
|
EVM: << pipeline.parameters.evm-version >>
|
||||||
SOLTEST_FLAGS: --no-smt
|
SOLTEST_FLAGS: --no-smt
|
||||||
<<: *steps_soltest
|
steps:
|
||||||
|
- soltest
|
||||||
|
|
||||||
t_ubu_ubsan_clang_cli:
|
t_ubu_ubsan_clang_cli:
|
||||||
<<: *base_ubuntu2204_clang
|
<<: *base_ubuntu2204_clang
|
||||||
parallelism: 7 # Should match number of tests in .circleci/cli.sh
|
parallelism: 7 # Should match number of tests in .circleci/cli.sh
|
||||||
<<: *steps_cmdline_tests
|
steps:
|
||||||
|
- cmdline_tests
|
||||||
|
|
||||||
t_ems_solcjs:
|
t_ems_solcjs:
|
||||||
# Unlike other t_ems jobs this one actually runs 2x faster on medium (compared to small).
|
# Unlike other t_ems jobs this one actually runs 2x faster on medium (compared to small).
|
||||||
|
Loading…
Reference in New Issue
Block a user