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/ | ||||
|           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: | ||||
| 
 | ||||
|   # -------------------------------------------------------------------------- | ||||
| @ -320,74 +389,6 @@ defaults: | ||||
|           - 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 | ||||
| 
 | ||||
| @ -932,7 +933,8 @@ jobs: | ||||
|     # 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. | ||||
|     <<: *base_ubuntu2204_xlarge | ||||
|     <<: *steps_build | ||||
|     steps: | ||||
|       - build | ||||
| 
 | ||||
|   # x64 ASAN build, for testing for memory related bugs | ||||
|   b_ubu_asan: &b_ubu_asan | ||||
| @ -942,14 +944,16 @@ jobs: | ||||
|       <<: *base_ubuntu2204_env | ||||
|       CMAKE_OPTIONS: -DSANITIZE=address | ||||
|       CMAKE_BUILD_TYPE: Release | ||||
|     <<: *steps_build | ||||
|     steps: | ||||
|       - build | ||||
| 
 | ||||
|   b_ubu_clang: &b_ubu_clang | ||||
|     <<: *base_ubuntu2204_clang_large | ||||
|     environment: | ||||
|       <<: *base_ubuntu2204_clang_large_env | ||||
|       MAKEFLAGS: -j 10 | ||||
|     <<: *steps_build | ||||
|     steps: | ||||
|       - build | ||||
| 
 | ||||
|   b_ubu_san_clang: | ||||
|     # This runs a bit faster on large and xlarge but on nightly efficiency matters more. | ||||
| @ -960,7 +964,8 @@ jobs: | ||||
|     environment: | ||||
|       <<: *base_ubuntu2204_clang_env | ||||
|       CMAKE_OPTIONS: << parameters.cmake_options >> | ||||
|     <<: *steps_build | ||||
|     steps: | ||||
|       - build | ||||
| 
 | ||||
|   b_ubu_force_release: &b_ubu_force_release | ||||
|     <<: *b_ubu | ||||
| @ -1092,9 +1097,7 @@ jobs: | ||||
|       CMAKE_BUILD_TYPE: Release | ||||
|     steps: | ||||
|       - checkout | ||||
|       - when: | ||||
|           condition: true | ||||
|           <<: *steps_install_dependencies_osx | ||||
|       - install_dependencies_osx | ||||
|       - run_build | ||||
|       - store_artifacts_solc | ||||
|       - store_artifacts_yul_phaser | ||||
| @ -1114,9 +1117,7 @@ jobs: | ||||
|       OPTIMIZE: 0 | ||||
|     steps: | ||||
|       - checkout | ||||
|       - when: | ||||
|           condition: true | ||||
|           <<: *steps_install_dependencies_osx | ||||
|       - install_dependencies_osx | ||||
|       - attach_workspace: | ||||
|           at: . | ||||
|       - run_soltest | ||||
| @ -1130,9 +1131,7 @@ jobs: | ||||
|     parallelism: 7 # Should match number of tests in .circleci/cli.sh | ||||
|     steps: | ||||
|       - checkout | ||||
|       - when: | ||||
|           condition: true | ||||
|           <<: *steps_install_dependencies_osx | ||||
|       - install_dependencies_osx | ||||
|       - attach_workspace: | ||||
|           at: . | ||||
|       - run_cmdline_tests | ||||
| @ -1179,11 +1178,13 @@ jobs: | ||||
|   t_ubu_soltest_all: &t_ubu_soltest_all | ||||
|     <<: *base_ubuntu2204_large | ||||
|     parallelism: 50 | ||||
|     <<: *steps_soltest_all | ||||
|     steps: | ||||
|       - soltest_all | ||||
| 
 | ||||
|   t_ubu_lsp: &t_ubu_lsp | ||||
|     <<: *base_ubuntu2204_small | ||||
|     <<: *steps_test_lsp | ||||
|     steps: | ||||
|       - test_lsp | ||||
| 
 | ||||
|   t_archlinux_soltest: &t_archlinux_soltest | ||||
|     <<: *base_archlinux | ||||
| @ -1200,9 +1201,7 @@ jobs: | ||||
|           name: Install runtime dependencies | ||||
|           command: | | ||||
|             pacman --noconfirm -Syu --noprogressbar --needed base-devel boost cmake z3 cvc4 git openssh tar | ||||
|       - when: | ||||
|           condition: true | ||||
|           <<: *steps_soltest | ||||
|       - soltest | ||||
| 
 | ||||
|   t_ubu_clang_soltest: &t_ubu_clang_soltest | ||||
|     <<: *base_ubuntu2204_clang | ||||
| @ -1214,7 +1213,8 @@ jobs: | ||||
|       # The high parallelism in this job is causing the SMT tests to run out of memory, | ||||
|       # so disabling for now. | ||||
|       SOLTEST_FLAGS: --no-smt | ||||
|     <<: *steps_soltest | ||||
|     steps: | ||||
|       - soltest | ||||
| 
 | ||||
|   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 | ||||
| @ -1224,7 +1224,8 @@ jobs: | ||||
|   t_ubu_cli: &t_ubu_cli | ||||
|     <<: *base_ubuntu2204_small | ||||
|     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_cli | ||||
| @ -1248,7 +1249,8 @@ jobs: | ||||
|       # Suppress CLN memory leak. | ||||
|       # See: https://github.com/ethereum/solidity/issues/13891 for details. | ||||
|       LSAN_OPTIONS: suppressions=/root/project/.circleci/cln-asan.supp:print_suppressions=0 | ||||
|     <<: *steps_cmdline_tests | ||||
|     steps: | ||||
|       - cmdline_tests | ||||
| 
 | ||||
|   t_ubu_asan_soltest: | ||||
|     <<: *base_ubuntu2204 | ||||
| @ -1262,7 +1264,8 @@ jobs: | ||||
|       # Suppress CLN memory leak. | ||||
|       # See: https://github.com/ethereum/solidity/issues/13891 for details. | ||||
|       LSAN_OPTIONS: suppressions=/root/project/.circleci/cln-asan.supp | ||||
|     <<: *steps_soltest | ||||
|     steps: | ||||
|       - soltest | ||||
| 
 | ||||
|   t_ubu_asan_clang_soltest: | ||||
|     <<: *base_ubuntu2204_clang | ||||
| @ -1273,7 +1276,8 @@ jobs: | ||||
|       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 | ||||
|     steps: | ||||
|       - soltest | ||||
| 
 | ||||
|   t_ubu_ubsan_clang_soltest: | ||||
|     <<: *base_ubuntu2204_clang | ||||
| @ -1282,12 +1286,14 @@ jobs: | ||||
|       <<: *base_ubuntu2204_clang_env | ||||
|       EVM: << pipeline.parameters.evm-version >> | ||||
|       SOLTEST_FLAGS: --no-smt | ||||
|     <<: *steps_soltest | ||||
|     steps: | ||||
|       - soltest | ||||
| 
 | ||||
|   t_ubu_ubsan_clang_cli: | ||||
|     <<: *base_ubuntu2204_clang | ||||
|     parallelism: 7 # Should match number of tests in .circleci/cli.sh | ||||
|     <<: *steps_cmdline_tests | ||||
|     steps: | ||||
|       - cmdline_tests | ||||
| 
 | ||||
|   t_ems_solcjs: | ||||
|     # Unlike other t_ems jobs this one actually runs 2x faster on medium (compared to small). | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user