From 281011989184117f91172d23f1f686c2420e2a84 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Thu, 16 Feb 2023 13:35:08 +0100 Subject: [PATCH 01/24] Remove unused workflow_ubuntu1604_clang --- .circleci/config.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 67d52e071..b1b4f1c4e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -466,11 +466,6 @@ defaults: requires: - b_ubu - - workflow_ubuntu1604_clang: &workflow_ubuntu1604_clang - <<: *workflow_trigger_on_tags - requires: - - b_ubu_ossfuzz - - workflow_ubuntu2204_clang: &workflow_ubuntu2204_clang <<: *workflow_trigger_on_tags requires: From 1fbc17ba05738392f5d6d4c7e10ba1c51a4707dc Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Thu, 16 Feb 2023 14:30:08 +0100 Subject: [PATCH 02/24] Remove unused artifacts step --- .circleci/config.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b1b4f1c4e..872b548f2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -164,12 +164,6 @@ defaults: # -------------------------------------------------------------------------- # Artifacts Templates - # the whole build directory - - artifacts_build_dir: &artifacts_build_dir - root: build - paths: - - "*" - # compiled solc executable target - artifacts_solc: &artifacts_solc path: build/solc/solc From f4ab85da3ea9767b56bc8268272f4369bf3bac92 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 10:22:11 +0100 Subject: [PATCH 03/24] Remove HERA from base image --- scripts/docker/buildpack-deps/Dockerfile.ubuntu2004 | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/scripts/docker/buildpack-deps/Dockerfile.ubuntu2004 b/scripts/docker/buildpack-deps/Dockerfile.ubuntu2004 index de356f144..7ef5cde7e 100644 --- a/scripts/docker/buildpack-deps/Dockerfile.ubuntu2004 +++ b/scripts/docker/buildpack-deps/Dockerfile.ubuntu2004 @@ -57,18 +57,6 @@ RUN set -ex; \ ninja install/strip; \ rm -rf /usr/src/evmone -# HERA -RUN set -ex; \ - cd /usr/src; \ - git clone --branch="v0.6.0" --depth 1 --recurse-submodules https://github.com/ewasm/hera.git; \ - cd hera; \ - mkdir build; \ - cd build; \ - cmake -G Ninja -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="/usr" ..; \ - ninja; \ - ninja install/strip; \ - rm -rf /usr/src/hera - FROM base COPY --from=libraries /usr/lib /usr/lib COPY --from=libraries /usr/bin /usr/bin From 927946c4f57577ae598841c29e2e3a52dc6be791 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 10:38:52 +0100 Subject: [PATCH 04/24] Move ubuntu 22.04 dependencies to docker image --- .circleci/config.yml | 11 ----------- scripts/docker/buildpack-deps/Dockerfile.ubuntu2204 | 2 +- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 872b548f2..ad5427f40 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1104,11 +1104,6 @@ jobs: - checkout - attach_workspace: at: build - - run: - name: Install all locales - command: | - apt update --assume-yes - apt install locales-all --assume-yes --no-install-recommends - run: test/localeTest.sh build/solc/solc - matrix_notify_failure_unless_pr @@ -1516,12 +1511,6 @@ jobs: name: Print diff when: on_fail command: diff --unified=0 --report-identical-files --from-file $REPORT_FILES | head --lines 50 - - run: - name: Install zip - when: on_fail - command: | - apt update --quiet - apt install zip --assume-yes - run: name: Bundle reports into a single package when: on_fail diff --git a/scripts/docker/buildpack-deps/Dockerfile.ubuntu2204 b/scripts/docker/buildpack-deps/Dockerfile.ubuntu2204 index 51ab30ac0..e45342c58 100644 --- a/scripts/docker/buildpack-deps/Dockerfile.ubuntu2204 +++ b/scripts/docker/buildpack-deps/Dockerfile.ubuntu2204 @@ -38,7 +38,7 @@ RUN set -ex; \ libboost-filesystem-dev libboost-test-dev libboost-system-dev \ libboost-program-options-dev \ libcvc4-dev libz3-static-dev z3-static jq \ - libcln-dev; \ + libcln-dev zip locales-all; \ apt-get install -qy python3-pip python3-sphinx; \ pip3 install codecov; \ rm -rf /var/lib/apt/lists/* From 1e00672fbcf60693d62996df5169bd961637c9bd Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 11:12:50 +0100 Subject: [PATCH 05/24] Rename ubuntu ossfuzz dockerfile --- ...erfile.ubuntu1604.clang.ossfuzz => Dockerfile.clang.ossfuzz} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename scripts/docker/buildpack-deps/{Dockerfile.ubuntu1604.clang.ossfuzz => Dockerfile.clang.ossfuzz} (98%) diff --git a/scripts/docker/buildpack-deps/Dockerfile.ubuntu1604.clang.ossfuzz b/scripts/docker/buildpack-deps/Dockerfile.clang.ossfuzz similarity index 98% rename from scripts/docker/buildpack-deps/Dockerfile.ubuntu1604.clang.ossfuzz rename to scripts/docker/buildpack-deps/Dockerfile.clang.ossfuzz index 672bd18aa..b64d73bc0 100644 --- a/scripts/docker/buildpack-deps/Dockerfile.ubuntu1604.clang.ossfuzz +++ b/scripts/docker/buildpack-deps/Dockerfile.clang.ossfuzz @@ -1,7 +1,7 @@ # vim:syntax=dockerfile #------------------------------------------------------------------------------ # Dockerfile for building and testing Solidity Compiler on CI -# Target: Ubuntu 16.04 (Xenial Xerus) ossfuzz Clang variant +# Target: Ubuntu ossfuzz Clang variant # URL: https://hub.docker.com/r/ethereum/solidity-buildpack-deps # # This file is part of solidity. From f78591c356c391d81574a0939497f75a64282974 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Thu, 16 Feb 2023 18:08:59 +0100 Subject: [PATCH 06/24] Reorganize base images alphabetically and add small and xlarge image for ubuntu2004 --- .circleci/config.yml | 174 +++++++++++++++++++++---------------------- 1 file changed, 87 insertions(+), 87 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ad5427f40..c2efe62ed 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -281,6 +281,68 @@ defaults: # -------------------------------------------------------------------------- # Base Image Templates + - base_archlinux: &base_archlinux + docker: + - image: archlinux:base + environment: + TERM: xterm + MAKEFLAGS: -j 3 + + - base_archlinux_large: &base_archlinux_large + docker: + - image: archlinux:base + resource_class: large + environment: + TERM: xterm + MAKEFLAGS: -j 5 + + - base_cimg_small: &base_cimg_small + docker: + - image: cimg/base:current + resource_class: small + environment: + TERM: xterm + MAKEFLAGS: -j 2 + + - base_ems_large: &base_ems_large + docker: + - image: << pipeline.parameters.emscripten-docker-image >> + resource_class: large + environment: + TERM: xterm + MAKEFLAGS: -j 5 + + - base_node_small: &base_node_small + docker: + - image: cimg/node:current + resource_class: small + environment: + TERM: xterm + MAKEFLAGS: -j 2 + + - base_osx: &base_osx + macos: + xcode: "13.2.0" + environment: + TERM: xterm + MAKEFLAGS: -j5 + + - base_osx_large: &base_osx_large + macos: + xcode: "13.2.0" + resource_class: large + environment: + TERM: xterm + MAKEFLAGS: -j10 + + - base_python_small: &base_python_small + docker: + - image: cimg/python:3.6 + resource_class: small + environment: + TERM: xterm + MAKEFLAGS: -j 2 + - base_ubuntu1604_clang: &base_ubuntu1604_clang docker: - image: << pipeline.parameters.ubuntu-1604-clang-ossfuzz-docker-image >> @@ -295,30 +357,12 @@ defaults: TERM: xterm MAKEFLAGS: -j 2 - - base_ubuntu2204_clang: &base_ubuntu2204_clang - docker: - - image: << pipeline.parameters.ubuntu-2204-clang-docker-image >> - environment: - TERM: xterm - CC: clang - CXX: clang++ - MAKEFLAGS: -j 3 - - - base_ubuntu2204_clang_large: &base_ubuntu2204_clang_large - <<: *base_ubuntu2204_clang - resource_class: large - environment: - TERM: xterm - CC: clang - CXX: clang++ - MAKEFLAGS: -j 5 - - base_ubuntu2004: &base_ubuntu2004 docker: - - image: << pipeline.parameters.ubuntu-2004-docker-image >> + - image: << pipeline.parameters.ubuntu-2004-docker-image >> environment: - TERM: xterm - MAKEFLAGS: -j 3 + TERM: xterm + MAKEFLAGS: -j 3 - base_ubuntu2004_small: &base_ubuntu2004_small <<: *base_ubuntu2004 @@ -341,6 +385,24 @@ defaults: TERM: xterm MAKEFLAGS: -j 3 + - base_ubuntu2204_clang: &base_ubuntu2204_clang + docker: + - image: << pipeline.parameters.ubuntu-2204-clang-docker-image >> + environment: + TERM: xterm + CC: clang + CXX: clang++ + MAKEFLAGS: -j 3 + + - base_ubuntu2204_clang_large: &base_ubuntu2204_clang_large + <<: *base_ubuntu2204_clang + resource_class: large + environment: + TERM: xterm + CC: clang + CXX: clang++ + MAKEFLAGS: -j 5 + - base_ubuntu2204_small: &base_ubuntu2204_small <<: *base_ubuntu2204 resource_class: small @@ -362,28 +424,10 @@ defaults: TERM: xterm MAKEFLAGS: -j 10 - - base_cimg_small: &base_cimg_small - docker: - - image: cimg/base:current - resource_class: small - environment: - TERM: xterm - MAKEFLAGS: -j 2 - - - base_archlinux: &base_archlinux - docker: - - image: archlinux:base - environment: - TERM: xterm - MAKEFLAGS: -j 3 - - - base_archlinux_large: &base_archlinux_large - docker: - - image: archlinux:base - resource_class: large - environment: - TERM: xterm - MAKEFLAGS: -j 5 + - base_win_bash: &base_win_bash + executor: + name: win/default + shell: bash.exe - base_win_powershell: &base_win_powershell executor: @@ -396,50 +440,6 @@ defaults: shell: powershell.exe size: large - - base_win_bash: &base_win_bash - executor: - name: win/default - shell: bash.exe - - - base_osx: &base_osx - macos: - xcode: "13.2.0" - environment: - TERM: xterm - MAKEFLAGS: -j5 - - - base_osx_large: &base_osx_large - macos: - xcode: "13.2.0" - resource_class: large - environment: - TERM: xterm - MAKEFLAGS: -j10 - - - base_ems_large: &base_ems_large - docker: - - image: << pipeline.parameters.emscripten-docker-image >> - resource_class: large - environment: - TERM: xterm - MAKEFLAGS: -j 5 - - - base_python_small: &base_python_small - docker: - - image: cimg/python:3.6 - resource_class: small - environment: - TERM: xterm - MAKEFLAGS: -j 2 - - - base_node_small: &base_node_small - docker: - - image: cimg/node:current - resource_class: small - environment: - TERM: xterm - MAKEFLAGS: -j 2 - # -------------------------------------------------------------------------- # Workflow Templates From 524db30f12727d95eb42bebb0323457fa81635f0 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 11:16:50 +0100 Subject: [PATCH 07/24] Update ubuntu ossfuzz references --- .circleci/config.yml | 24 +++++++++---------- .github/workflows/buildpack-deps.yml | 4 ++-- ...ildpack-deps_test_ubuntu.clang.ossfuzz.sh} | 0 scripts/docker/buildpack-deps/README.md | 2 +- test/tools/ossfuzz/README.md | 4 ++-- 5 files changed, 17 insertions(+), 17 deletions(-) rename scripts/ci/{buildpack-deps_test_ubuntu1604.clang.ossfuzz.sh => buildpack-deps_test_ubuntu.clang.ossfuzz.sh} (100%) diff --git a/.circleci/config.yml b/.circleci/config.yml index c2efe62ed..174c4e78f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,11 +17,11 @@ parameters: default: "solbuildpackpusher/solidity-buildpack-deps@sha256:7f0b62da2aa0920660e67cd17fb3a7f6c57d7da72454003056f3bd27bbda2075" ubuntu-2204-clang-docker-image: type: string - # solbuildpackpusher/solidity-buildpack-deps:ubuntu2204.clang-2 - default: "solbuildpackpusher/solidity-buildpack-deps@sha256:0d4fa1da806f9b3daabd2d1dc0842899af794a838e475c14045c3fb289cc8103" - ubuntu-1604-clang-ossfuzz-docker-image: + # solbuildpackpusher/solidity-buildpack-deps:ubuntu2204.clang-1 + default: "solbuildpackpusher/solidity-buildpack-deps@sha256:e515710752bfb38ee0e9b2f92ca71612c03ed85290c36c3b3c0a3d9f90187aef" + ubuntu-clang-ossfuzz-docker-image: type: string - # solbuildpackpusher/solidity-buildpack-deps:ubuntu1604.clang.ossfuzz-23 + # solbuildpackpusher/solidity-buildpack-deps:ubuntu.clang.ossfuzz-23 default: "solbuildpackpusher/solidity-buildpack-deps@sha256:7a84f67829ec2fdcfc8a61ebf22f9dc27b04a9edeb1531565ab3e0ebb1cbc4a0" emscripten-docker-image: type: string @@ -343,15 +343,15 @@ defaults: TERM: xterm MAKEFLAGS: -j 2 - - base_ubuntu1604_clang: &base_ubuntu1604_clang + - base_ubuntu_clang: &base_ubuntu_clang docker: - - image: << pipeline.parameters.ubuntu-1604-clang-ossfuzz-docker-image >> + - image: << pipeline.parameters.ubuntu-clang-ossfuzz-docker-image >> environment: TERM: xterm MAKEFLAGS: -j 3 - - base_ubuntu1604_clang_small: &base_ubuntu1604_clang_small - <<: *base_ubuntu1604_clang + - base_ubuntu_clang_small: &base_ubuntu_clang_small + <<: *base_ubuntu_clang resource_class: small environment: TERM: xterm @@ -510,7 +510,7 @@ defaults: requires: - b_ems - - workflow_ubuntu1604_ossfuzz: &workflow_ubuntu1604_ossfuzz + - workflow_ubuntu_ossfuzz: &workflow_ubuntu_ossfuzz <<: *workflow_trigger_on_tags requires: - b_ubu_ossfuzz @@ -916,7 +916,7 @@ jobs: - matrix_notify_failure_unless_pr b_ubu_ossfuzz: &b_ubu_ossfuzz - <<: *base_ubuntu1604_clang + <<: *base_ubuntu_clang steps: - checkout - run: *setup_prerelease_commit_hash @@ -925,7 +925,7 @@ jobs: - matrix_notify_failure_unless_pr t_ubu_ossfuzz: &t_ubu_ossfuzz - <<: *base_ubuntu1604_clang_small + <<: *base_ubuntu_clang_small steps: - checkout - attach_workspace: @@ -1711,7 +1711,7 @@ workflows: jobs: # OSSFUZZ builds and (regression) tests - b_ubu_ossfuzz: *workflow_trigger_on_tags - - t_ubu_ossfuzz: *workflow_ubuntu1604_ossfuzz + - t_ubu_ossfuzz: *workflow_ubuntu_ossfuzz # Code Coverage enabled build and tests - b_ubu_codecov: *workflow_trigger_on_tags diff --git a/.github/workflows/buildpack-deps.yml b/.github/workflows/buildpack-deps.yml index 4d3918d94..6a261bd2e 100644 --- a/.github/workflows/buildpack-deps.yml +++ b/.github/workflows/buildpack-deps.yml @@ -5,7 +5,7 @@ on: branches: [ develop ] paths: - 'scripts/docker/buildpack-deps/Dockerfile.emscripten' - - 'scripts/docker/buildpack-deps/Dockerfile.ubuntu1604.clang.ossfuzz' + - 'scripts/docker/buildpack-deps/Dockerfile.ubuntu.clang.ossfuzz' - 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2004' - 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2204.clang' - 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2204' @@ -23,7 +23,7 @@ jobs: strategy: fail-fast: false matrix: - image_variant: [emscripten, ubuntu1604.clang.ossfuzz, ubuntu2004, ubuntu2204.clang, ubuntu2204] + image_variant: [emscripten, ubuntu.clang.ossfuzz, ubuntu2004, ubuntu2204.clang, ubuntu2204] steps: - uses: actions/checkout@v2 diff --git a/scripts/ci/buildpack-deps_test_ubuntu1604.clang.ossfuzz.sh b/scripts/ci/buildpack-deps_test_ubuntu.clang.ossfuzz.sh similarity index 100% rename from scripts/ci/buildpack-deps_test_ubuntu1604.clang.ossfuzz.sh rename to scripts/ci/buildpack-deps_test_ubuntu.clang.ossfuzz.sh diff --git a/scripts/docker/buildpack-deps/README.md b/scripts/docker/buildpack-deps/README.md index 7f6352581..15cb71f5b 100644 --- a/scripts/docker/buildpack-deps/README.md +++ b/scripts/docker/buildpack-deps/README.md @@ -27,7 +27,7 @@ If the version check was successful, the docker image will be built using the Do The resulting docker image will be tested by executing the corresponding `scripts/ci/buildpack-deps_test_*` scripts. Some of these scripts are symlinked to `scripts/ci/build.sh`, except the following two: - * `buildpack-deps-ubuntu1604.clang.ossfuzz` => `scripts/ci/build_ossfuzz.sh` + * `buildpack-deps-ubuntu.clang.ossfuzz` => `scripts/ci/build_ossfuzz.sh` * `buildpack-deps_test_emscripten.sh` => `scripts/ci/build_emscripten.sh` These scripts `scripts/ci/build.sh` and `scripts/ci/build_ossfuzz.sh` are also used by CircleCI, see `.circleci/config.yml`. diff --git a/test/tools/ossfuzz/README.md b/test/tools/ossfuzz/README.md index 944595a3f..9343602d4 100644 --- a/test/tools/ossfuzz/README.md +++ b/test/tools/ossfuzz/README.md @@ -6,11 +6,11 @@ We have multiple fuzzers, some based on string input and others on protobuf input. To build them, please do the following: -- Create a local docker image from `Dockerfile.ubuntu1604.clang.ossfuzz` in the `.circleci/docker` sub-directory. Please note that this step is likely to take at least an hour to complete. Therefore, it is recommended to do it when you are away from the computer (and the computer is plugged to power since we do not want a battery drain). +- Create a local docker image from `Dockerfile.ubuntu.clang.ossfuzz` in the `.circleci/docker` sub-directory. Please note that this step is likely to take at least an hour to complete. Therefore, it is recommended to do it when you are away from the computer (and the computer is plugged to power since we do not want a battery drain). ``` $ cd .circleci/docker -$ docker build -t solidity-ossfuzz-local -f Dockerfile.ubuntu1604.clang.ossfuzz . +$ docker build -t solidity-ossfuzz-local -f Dockerfile.ubuntu.clang.ossfuzz . ``` - Login to the docker container sourced from the image built in the previous step from the solidity parent directory From 9b7eb4683b654f5f7b42c967f0275c89b09efccb Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 11:38:44 +0100 Subject: [PATCH 08/24] Rename workflow_trigger_on_tags -> on_all_tags_and_branches --- .circleci/config.yml | 98 ++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 174c4e78f..8efa8e733 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -443,7 +443,7 @@ defaults: # -------------------------------------------------------------------------- # Workflow Templates - - workflow_trigger_on_tags: &workflow_trigger_on_tags + - on_all_tags_and_branches: &on_all_tags_and_branches filters: tags: only: /.*/ @@ -456,67 +456,67 @@ defaults: ignore: /.*/ - workflow_ubuntu2204: &workflow_ubuntu2204 - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ubu - workflow_ubuntu2204_clang: &workflow_ubuntu2204_clang - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ubu_clang - workflow_ubuntu2204_force_release: &workflow_ubuntu2204_force_release - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ubu_force_release - workflow_ubuntu2004_static: &workflow_ubuntu2004_static - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ubu_static - workflow_archlinux: &workflow_archlinux - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_archlinux - workflow_ubuntu2204_codecov: &workflow_ubuntu2204_codecov - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ubu_codecov - workflow_osx: &workflow_osx - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_osx - workflow_ubuntu2204_asan: &workflow_ubuntu2204_asan - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ubu_asan - workflow_ubuntu2204_asan_clang: &workflow_ubuntu2204_asan_clang - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ubu_asan_clang - workflow_ubuntu2204_ubsan_clang: &workflow_ubuntu2204_ubsan_clang - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ubu_ubsan_clang - workflow_emscripten: &workflow_emscripten - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ems - workflow_ubuntu_ossfuzz: &workflow_ubuntu_ossfuzz - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ubu_ossfuzz - workflow_win: &workflow_win - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_win @@ -633,11 +633,11 @@ defaults: python2: true - job_b_ubu_asan_clang: &job_b_ubu_asan_clang - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches name: b_ubu_asan_clang cmake_options: -DSANITIZE=address - job_b_ubu_ubsan_clang: &job_b_ubu_ubsan_clang - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches name: b_ubu_ubsan_clang cmake_options: -DSANITIZE=undefined @@ -1568,52 +1568,52 @@ workflows: main: jobs: # basic checks - - chk_spelling: *workflow_trigger_on_tags - - chk_coding_style: *workflow_trigger_on_tags - # DISABLED FOR 0.6.0 - chk_docs_examples: *workflow_trigger_on_tags - - chk_buglist: *workflow_trigger_on_tags - - chk_proofs: *workflow_trigger_on_tags - - chk_pylint: *workflow_trigger_on_tags - - chk_errorcodes: *workflow_trigger_on_tags - - chk_antlr_grammar: *workflow_trigger_on_tags - - chk_docs_pragma_min_version: *workflow_trigger_on_tags - - t_ubu_pyscripts: *workflow_trigger_on_tags - - t_win_pyscripts: *workflow_trigger_on_tags + - chk_spelling: *on_all_tags_and_branches + - chk_coding_style: *on_all_tags_and_branches + # DISABLED FOR 0.6.0 - chk_docs_examples: *on_all_tags_and_branches + - chk_buglist: *on_all_tags_and_branches + - chk_proofs: *on_all_tags_and_branches + - chk_pylint: *on_all_tags_and_branches + - chk_errorcodes: *on_all_tags_and_branches + - chk_antlr_grammar: *on_all_tags_and_branches + - chk_docs_pragma_min_version: *on_all_tags_and_branches + - t_ubu_pyscripts: *on_all_tags_and_branches + - t_win_pyscripts: *on_all_tags_and_branches # build-only - - b_docs: *workflow_trigger_on_tags - # DISABLED FOR 0.8.18 - b_ubu_cxx20: *workflow_trigger_on_tags + - b_docs: *on_all_tags_and_branches + # DISABLED FOR 0.8.18 - b_ubu_cxx20: *on_all_tags_and_branches # Issue: https://github.com/ethereum/solidity/issues/13868 - - b_ubu_ossfuzz: *workflow_trigger_on_tags + - b_ubu_ossfuzz: *on_all_tags_and_branches # OS/X build and tests - - b_osx: *workflow_trigger_on_tags + - b_osx: *on_all_tags_and_branches - t_osx_cli: *workflow_osx - t_osx_soltest: *workflow_osx # ArchLinux build and tests - - b_archlinux: *workflow_trigger_on_tags + - b_archlinux: *on_all_tags_and_branches - t_archlinux_soltest: *workflow_archlinux # Static build - - b_ubu_static: *workflow_trigger_on_tags + - b_ubu_static: *on_all_tags_and_branches # Ubuntu build and tests - - b_ubu: *workflow_trigger_on_tags + - b_ubu: *on_all_tags_and_branches - t_ubu_cli: *workflow_ubuntu2204 - t_ubu_locale: *workflow_ubuntu2204 - t_ubu_soltest_all: *workflow_ubuntu2204 - - b_ubu_clang: *workflow_trigger_on_tags + - b_ubu_clang: *on_all_tags_and_branches - t_ubu_clang_soltest: *workflow_ubuntu2204_clang - t_ubu_lsp: *workflow_ubuntu2204 # Ubuntu fake release build and tests - - b_ubu_force_release: *workflow_trigger_on_tags + - b_ubu_force_release: *on_all_tags_and_branches - t_ubu_force_release_cli: *workflow_ubuntu2204_force_release - t_ubu_force_release_soltest_all: *workflow_ubuntu2204_force_release # Emscripten build and tests that take 15 minutes or less - - b_ems: *workflow_trigger_on_tags + - b_ems: *on_all_tags_and_branches - t_ems_solcjs: *workflow_emscripten - t_ems_ext_hardhat: *workflow_emscripten @@ -1636,7 +1636,7 @@ workflows: - t_ems_ext: *job_native_test_ext_gp2 - c_ext_benchmarks: - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - t_ems_compile_ext_colony - t_native_test_ext_gnosis @@ -1656,32 +1656,32 @@ workflows: - t_native_test_ext_gp2 # Windows build and tests - - b_win: *workflow_trigger_on_tags + - b_win: *on_all_tags_and_branches - t_win_soltest: *workflow_win # Bytecode comparison: - b_bytecode_ubu_static: - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ubu_static - b_bytecode_ubu: - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ubu - b_bytecode_win: - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_win - b_bytecode_osx: - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_osx - b_bytecode_ems: - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_ems - t_bytecode_compare: - <<: *workflow_trigger_on_tags + <<: *on_all_tags_and_branches requires: - b_bytecode_ubu_static - b_bytecode_ubu @@ -1710,15 +1710,15 @@ workflows: jobs: # OSSFUZZ builds and (regression) tests - - b_ubu_ossfuzz: *workflow_trigger_on_tags + - b_ubu_ossfuzz: *on_all_tags_and_branches - t_ubu_ossfuzz: *workflow_ubuntu_ossfuzz # Code Coverage enabled build and tests - - b_ubu_codecov: *workflow_trigger_on_tags + - b_ubu_codecov: *on_all_tags_and_branches - t_ubu_codecov: *workflow_ubuntu2204_codecov # ASan build and tests - - b_ubu_asan: *workflow_trigger_on_tags + - b_ubu_asan: *on_all_tags_and_branches - b_ubu_san_clang: *job_b_ubu_asan_clang - t_ubu_asan_soltest: *workflow_ubuntu2204_asan - t_ubu_asan_clang_soltest: *workflow_ubuntu2204_asan_clang @@ -1730,5 +1730,5 @@ workflows: - t_ubu_ubsan_clang_cli: *workflow_ubuntu2204_ubsan_clang # Emscripten build and tests that take more than 15 minutes to execute - - b_ems: *workflow_trigger_on_tags + - b_ems: *on_all_tags_and_branches - t_ems_ext: *job_ems_test_ext_colony From b99684d3f2886486341b8eefdd92f4d5407c39f8 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 11:41:52 +0100 Subject: [PATCH 09/24] Rename workflow_trigger_on_releases -> on_version_tags --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8efa8e733..4369e57f8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -448,7 +448,7 @@ defaults: tags: only: /.*/ - - workflow_trigger_on_releases: &workflow_trigger_on_releases + - on_version_tags: &on_version_tags filters: tags: only: /^v.*/ @@ -1691,7 +1691,7 @@ workflows: # Final artifacts - c_release_binaries: - <<: *workflow_trigger_on_releases + <<: *on_version_tags requires: - b_ubu_static - b_osx From d8937d8a762260605075e5a9bf3f7d3967d52755 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 11:49:23 +0100 Subject: [PATCH 10/24] Rename workflow_ubuntu2004_static -> requires_b_ubu_static --- .circleci/config.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4369e57f8..b1b2a82c8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -470,7 +470,7 @@ defaults: requires: - b_ubu_force_release - - workflow_ubuntu2004_static: &workflow_ubuntu2004_static + - requires_b_ubu_static: &requires_b_ubu_static <<: *on_all_tags_and_branches requires: - b_ubu_static @@ -534,91 +534,91 @@ defaults: python2: true - job_native_test_ext_gnosis: &job_native_test_ext_gnosis - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_gnosis project: gnosis binary_type: native nodejs_version: '16.18' - job_native_test_ext_zeppelin: &job_native_test_ext_zeppelin - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_zeppelin project: zeppelin binary_type: native resource_class: large - job_native_test_ext_ens: &job_native_test_ext_ens - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_ens project: ens binary_type: native nodejs_version: '18.11' - job_native_test_ext_trident: &job_native_test_ext_trident - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_trident project: trident binary_type: native nodejs_version: '16.18' - job_native_test_ext_euler: &job_native_test_ext_euler - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_euler project: euler binary_type: native resource_class: medium - job_native_test_ext_yield_liquidator: &job_native_test_ext_yield_liquidator - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_yield_liquidator project: yield-liquidator binary_type: native - job_native_test_ext_bleeps: &job_native_test_ext_bleeps - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_bleeps project: bleeps binary_type: native resource_class: medium - job_native_test_ext_pool_together: &job_native_test_ext_pool_together - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_pool_together project: pool-together binary_type: native nodejs_version: '16.18' - job_native_test_ext_perpetual_pools: &job_native_test_ext_perpetual_pools - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_perpetual_pools project: perpetual-pools binary_type: native nodejs_version: '18.11' - job_native_test_ext_uniswap: &job_native_test_ext_uniswap - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_uniswap project: uniswap binary_type: native nodejs_version: '16.18' - job_native_test_ext_prb_math: &job_native_test_ext_prb_math - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_prb_math project: prb-math binary_type: native nodejs_version: '18.11' - job_native_test_ext_elementfi: &job_native_test_ext_elementfi - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_elementfi project: elementfi binary_type: native resource_class: medium - job_native_test_ext_brink: &job_native_test_ext_brink - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_brink project: brink binary_type: native nodejs_version: '18.11' - job_native_test_ext_chainlink: &job_native_test_ext_chainlink - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_chainlink project: chainlink binary_type: native nodejs_version: '16.18' resource_class: large # Tests run out of memory on a smaller machine - job_native_test_ext_gp2: &job_native_test_ext_gp2 - <<: *workflow_ubuntu2004_static + <<: *requires_b_ubu_static name: t_native_test_ext_gp2 project: gp2 binary_type: native From a13c3f0d075d0d234025f771be1e0e5a9dc37ae7 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 20:07:25 +0100 Subject: [PATCH 11/24] Rename workflow_ubuntu2204 -> requires_b_ubu --- .circleci/config.yml | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b1b2a82c8..3df29de05 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -455,17 +455,17 @@ defaults: branches: ignore: /.*/ - - workflow_ubuntu2204: &workflow_ubuntu2204 + - requires_b_ubu: &requires_b_ubu <<: *on_all_tags_and_branches requires: - b_ubu - - workflow_ubuntu2204_clang: &workflow_ubuntu2204_clang + - requires_b_ubu_clang: &requires_b_ubu_clang <<: *on_all_tags_and_branches requires: - b_ubu_clang - - workflow_ubuntu2204_force_release: &workflow_ubuntu2204_force_release + - requires_b_ubu_force_release: &requires_b_ubu_force_release <<: *on_all_tags_and_branches requires: - b_ubu_force_release @@ -480,7 +480,7 @@ defaults: requires: - b_archlinux - - workflow_ubuntu2204_codecov: &workflow_ubuntu2204_codecov + - requires_b_ubu_codecov: &requires_b_ubu_codecov <<: *on_all_tags_and_branches requires: - b_ubu_codecov @@ -490,17 +490,17 @@ defaults: requires: - b_osx - - workflow_ubuntu2204_asan: &workflow_ubuntu2204_asan + - requires_b_ubu_asan: &requires_b_ubu_asan <<: *on_all_tags_and_branches requires: - b_ubu_asan - - workflow_ubuntu2204_asan_clang: &workflow_ubuntu2204_asan_clang + - requires_b_ubu_asan_clang: &requires_b_ubu_asan_clang <<: *on_all_tags_and_branches requires: - b_ubu_asan_clang - - workflow_ubuntu2204_ubsan_clang: &workflow_ubuntu2204_ubsan_clang + - requires_b_ubu_ubsan_clang: &requires_b_ubu_ubsan_clang <<: *on_all_tags_and_branches requires: - b_ubu_ubsan_clang @@ -1600,17 +1600,17 @@ workflows: # Ubuntu build and tests - b_ubu: *on_all_tags_and_branches - - t_ubu_cli: *workflow_ubuntu2204 - - t_ubu_locale: *workflow_ubuntu2204 - - t_ubu_soltest_all: *workflow_ubuntu2204 + - t_ubu_cli: *requires_b_ubu + - t_ubu_locale: *requires_b_ubu + - t_ubu_soltest_all: *requires_b_ubu - b_ubu_clang: *on_all_tags_and_branches - - t_ubu_clang_soltest: *workflow_ubuntu2204_clang - - t_ubu_lsp: *workflow_ubuntu2204 + - t_ubu_clang_soltest: *requires_b_ubu_clang + - t_ubu_lsp: *requires_b_ubu # Ubuntu fake release build and tests - b_ubu_force_release: *on_all_tags_and_branches - - t_ubu_force_release_cli: *workflow_ubuntu2204_force_release - - t_ubu_force_release_soltest_all: *workflow_ubuntu2204_force_release + - t_ubu_force_release_cli: *requires_b_ubu_force_release + - t_ubu_force_release_soltest_all: *requires_b_ubu_force_release # Emscripten build and tests that take 15 minutes or less - b_ems: *on_all_tags_and_branches @@ -1715,19 +1715,19 @@ workflows: # Code Coverage enabled build and tests - b_ubu_codecov: *on_all_tags_and_branches - - t_ubu_codecov: *workflow_ubuntu2204_codecov + - t_ubu_codecov: *requires_b_ubu_codecov # ASan build and tests - b_ubu_asan: *on_all_tags_and_branches - b_ubu_san_clang: *job_b_ubu_asan_clang - - t_ubu_asan_soltest: *workflow_ubuntu2204_asan - - t_ubu_asan_clang_soltest: *workflow_ubuntu2204_asan_clang - - t_ubu_asan_cli: *workflow_ubuntu2204_asan + - t_ubu_asan_soltest: *requires_b_ubu_asan + - t_ubu_asan_clang_soltest: *requires_b_ubu_asan_clang + - t_ubu_asan_cli: *requires_b_ubu_asan # UBSan build and tests - b_ubu_san_clang: *job_b_ubu_ubsan_clang - - t_ubu_ubsan_clang_soltest: *workflow_ubuntu2204_ubsan_clang - - t_ubu_ubsan_clang_cli: *workflow_ubuntu2204_ubsan_clang + - t_ubu_ubsan_clang_soltest: *requires_b_ubu_ubsan_clang + - t_ubu_ubsan_clang_cli: *requires_b_ubu_ubsan_clang # Emscripten build and tests that take more than 15 minutes to execute - b_ems: *on_all_tags_and_branches From 4cf3661c3e3a699ea75480562b18be44bdbb5c55 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 20:08:57 +0100 Subject: [PATCH 12/24] Rename workflow_emscripten -> requires_emscripten --- .circleci/config.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3df29de05..10dbeb1cf 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -505,7 +505,7 @@ defaults: requires: - b_ubu_ubsan_clang - - workflow_emscripten: &workflow_emscripten + - requires_emscripten: &requires_emscripten <<: *on_all_tags_and_branches requires: - b_ems @@ -525,7 +525,7 @@ defaults: # Separate compile-only runs of those external tests where a full run takes much longer. - job_ems_compile_ext_colony: &job_ems_compile_ext_colony - <<: *workflow_emscripten + <<: *requires_emscripten name: t_ems_compile_ext_colony project: colony binary_type: solcjs @@ -624,7 +624,7 @@ defaults: binary_type: native nodejs_version: '18.11' - job_ems_test_ext_colony: &job_ems_test_ext_colony - <<: *workflow_emscripten + <<: *requires_emscripten name: t_ems_test_ext_colony project: colony binary_type: solcjs @@ -1614,8 +1614,8 @@ workflows: # Emscripten build and tests that take 15 minutes or less - b_ems: *on_all_tags_and_branches - - t_ems_solcjs: *workflow_emscripten - - t_ems_ext_hardhat: *workflow_emscripten + - t_ems_solcjs: *requires_emscripten + - t_ems_ext_hardhat: *requires_emscripten - t_ems_ext: *job_ems_compile_ext_colony From 8ea890de53d9466f7155df2d3e457cbc0734e7ff Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 20:11:09 +0100 Subject: [PATCH 13/24] Minor fix --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 10dbeb1cf..33e45dabf 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -510,7 +510,7 @@ defaults: requires: - b_ems - - workflow_ubuntu_ossfuzz: &workflow_ubuntu_ossfuzz + - requires_b_ubu_ossfuzz: &requires_b_ubu_ossfuzz <<: *on_all_tags_and_branches requires: - b_ubu_ossfuzz @@ -1711,7 +1711,7 @@ workflows: jobs: # OSSFUZZ builds and (regression) tests - b_ubu_ossfuzz: *on_all_tags_and_branches - - t_ubu_ossfuzz: *workflow_ubuntu_ossfuzz + - t_ubu_ossfuzz: *requires_b_ubu_ossfuzz # Code Coverage enabled build and tests - b_ubu_codecov: *on_all_tags_and_branches From e464a49b0b1379582533ce5a39cc4da72072f182 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 20:13:22 +0100 Subject: [PATCH 14/24] Rename workflow_archlinux -> requires_b_archlinux --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 33e45dabf..2f84098b0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -475,7 +475,7 @@ defaults: requires: - b_ubu_static - - workflow_archlinux: &workflow_archlinux + - requires_b_archlinux: &requires_b_archlinux <<: *on_all_tags_and_branches requires: - b_archlinux @@ -1593,7 +1593,7 @@ workflows: # ArchLinux build and tests - b_archlinux: *on_all_tags_and_branches - - t_archlinux_soltest: *workflow_archlinux + - t_archlinux_soltest: *requires_b_archlinux # Static build - b_ubu_static: *on_all_tags_and_branches From 6cde589a03994b1efc106fc90a5c674a8b27eb39 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 20:14:18 +0100 Subject: [PATCH 15/24] Rename workflow_win -> requires_win --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2f84098b0..02ed242e7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -515,7 +515,7 @@ defaults: requires: - b_ubu_ossfuzz - - workflow_win: &workflow_win + - requires_b_win: &requires_b_win <<: *on_all_tags_and_branches requires: - b_win @@ -1657,7 +1657,7 @@ workflows: # Windows build and tests - b_win: *on_all_tags_and_branches - - t_win_soltest: *workflow_win + - t_win_soltest: *requires_b_win # Bytecode comparison: - b_bytecode_ubu_static: From a9949f1cd13d81849051f5ed863071953460645e Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Fri, 17 Feb 2023 20:15:18 +0100 Subject: [PATCH 16/24] Rename workflow_osx -> requires_osx --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 02ed242e7..047af9ac2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -485,7 +485,7 @@ defaults: requires: - b_ubu_codecov - - workflow_osx: &workflow_osx + - requires_b_osx: &requires_b_osx <<: *on_all_tags_and_branches requires: - b_osx @@ -1588,8 +1588,8 @@ workflows: # OS/X build and tests - b_osx: *on_all_tags_and_branches - - t_osx_cli: *workflow_osx - - t_osx_soltest: *workflow_osx + - t_osx_cli: *requires_b_osx + - t_osx_soltest: *requires_b_osx # ArchLinux build and tests - b_archlinux: *on_all_tags_and_branches From 67078afe4bd37dd221c84c20ab2c315567aeb425 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Sat, 18 Feb 2023 12:14:41 +0100 Subject: [PATCH 17/24] Add on_develop filter --- .circleci/config.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 047af9ac2..1f4b19648 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -455,6 +455,12 @@ defaults: branches: ignore: /.*/ + - on_develop: &on_develop + filters: + branches: + only: + - develop + - requires_b_ubu: &requires_b_ubu <<: *on_all_tags_and_branches requires: @@ -1703,10 +1709,7 @@ workflows: triggers: - schedule: cron: "0 0 * * *" - filters: - branches: - only: - - develop + <<: *on_develop jobs: # OSSFUZZ builds and (regression) tests From ce27eecb934111fee88c49013f2611f2fac0d79e Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Mon, 20 Feb 2023 11:48:29 +0100 Subject: [PATCH 18/24] Add requires_nothing --- .circleci/config.yml | 79 +++++++++++++++++++++++--------------------- 1 file changed, 41 insertions(+), 38 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1f4b19648..9ee36b749 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -461,6 +461,9 @@ defaults: only: - develop + - requires_nothing: &requires_nothing + <<: *on_all_tags_and_branches + - requires_b_ubu: &requires_b_ubu <<: *on_all_tags_and_branches requires: @@ -511,7 +514,7 @@ defaults: requires: - b_ubu_ubsan_clang - - requires_emscripten: &requires_emscripten + - requires_b_ems: &requires_b_ems <<: *on_all_tags_and_branches requires: - b_ems @@ -531,7 +534,7 @@ defaults: # Separate compile-only runs of those external tests where a full run takes much longer. - job_ems_compile_ext_colony: &job_ems_compile_ext_colony - <<: *requires_emscripten + <<: *requires_b_ems name: t_ems_compile_ext_colony project: colony binary_type: solcjs @@ -630,7 +633,7 @@ defaults: binary_type: native nodejs_version: '18.11' - job_ems_test_ext_colony: &job_ems_test_ext_colony - <<: *requires_emscripten + <<: *requires_b_ems name: t_ems_test_ext_colony project: colony binary_type: solcjs @@ -1574,54 +1577,54 @@ workflows: main: jobs: # basic checks - - chk_spelling: *on_all_tags_and_branches - - chk_coding_style: *on_all_tags_and_branches - # DISABLED FOR 0.6.0 - chk_docs_examples: *on_all_tags_and_branches - - chk_buglist: *on_all_tags_and_branches - - chk_proofs: *on_all_tags_and_branches - - chk_pylint: *on_all_tags_and_branches - - chk_errorcodes: *on_all_tags_and_branches - - chk_antlr_grammar: *on_all_tags_and_branches - - chk_docs_pragma_min_version: *on_all_tags_and_branches - - t_ubu_pyscripts: *on_all_tags_and_branches - - t_win_pyscripts: *on_all_tags_and_branches + - chk_spelling: *requires_nothing + - chk_coding_style: *requires_nothing + # DISABLED FOR 0.6.0 - chk_docs_examples: *requires_nothing + - chk_buglist: *requires_nothing + - chk_proofs: *requires_nothing + - chk_pylint: *requires_nothing + - chk_errorcodes: *requires_nothing + - chk_antlr_grammar: *requires_nothing + - chk_docs_pragma_min_version: *requires_nothing + - t_ubu_pyscripts: *requires_nothing + - t_win_pyscripts: *requires_nothing # build-only - - b_docs: *on_all_tags_and_branches - # DISABLED FOR 0.8.18 - b_ubu_cxx20: *on_all_tags_and_branches + - b_docs: *requires_nothing + # DISABLED FOR 0.8.18 - b_ubu_cxx20: *requires_nothing # Issue: https://github.com/ethereum/solidity/issues/13868 - - b_ubu_ossfuzz: *on_all_tags_and_branches + - b_ubu_ossfuzz: *requires_nothing # OS/X build and tests - - b_osx: *on_all_tags_and_branches + - b_osx: *requires_nothing - t_osx_cli: *requires_b_osx - t_osx_soltest: *requires_b_osx # ArchLinux build and tests - - b_archlinux: *on_all_tags_and_branches + - b_archlinux: *requires_nothing - t_archlinux_soltest: *requires_b_archlinux # Static build - - b_ubu_static: *on_all_tags_and_branches + - b_ubu_static: *requires_nothing # Ubuntu build and tests - - b_ubu: *on_all_tags_and_branches + - b_ubu: *requires_nothing - t_ubu_cli: *requires_b_ubu - t_ubu_locale: *requires_b_ubu - t_ubu_soltest_all: *requires_b_ubu - - b_ubu_clang: *on_all_tags_and_branches + - b_ubu_clang: *requires_nothing - t_ubu_clang_soltest: *requires_b_ubu_clang - t_ubu_lsp: *requires_b_ubu # Ubuntu fake release build and tests - - b_ubu_force_release: *on_all_tags_and_branches + - b_ubu_force_release: *requires_nothing - t_ubu_force_release_cli: *requires_b_ubu_force_release - t_ubu_force_release_soltest_all: *requires_b_ubu_force_release # Emscripten build and tests that take 15 minutes or less - - b_ems: *on_all_tags_and_branches - - t_ems_solcjs: *requires_emscripten - - t_ems_ext_hardhat: *requires_emscripten + - b_ems: *requires_nothing + - t_ems_solcjs: *requires_b_ems + - t_ems_ext_hardhat: *requires_b_ems - t_ems_ext: *job_ems_compile_ext_colony @@ -1642,7 +1645,7 @@ workflows: - t_ems_ext: *job_native_test_ext_gp2 - c_ext_benchmarks: - <<: *on_all_tags_and_branches + <<: *requires_nothing requires: - t_ems_compile_ext_colony - t_native_test_ext_gnosis @@ -1662,32 +1665,32 @@ workflows: - t_native_test_ext_gp2 # Windows build and tests - - b_win: *on_all_tags_and_branches + - b_win: *requires_nothing - t_win_soltest: *requires_b_win # Bytecode comparison: - b_bytecode_ubu_static: - <<: *on_all_tags_and_branches + <<: *requires_nothing requires: - b_ubu_static - b_bytecode_ubu: - <<: *on_all_tags_and_branches + <<: *requires_nothing requires: - b_ubu - b_bytecode_win: - <<: *on_all_tags_and_branches + <<: *requires_nothing requires: - b_win - b_bytecode_osx: - <<: *on_all_tags_and_branches + <<: *requires_nothing requires: - b_osx - b_bytecode_ems: - <<: *on_all_tags_and_branches + <<: *requires_nothing requires: - b_ems - t_bytecode_compare: - <<: *on_all_tags_and_branches + <<: *requires_nothing requires: - b_bytecode_ubu_static - b_bytecode_ubu @@ -1713,15 +1716,15 @@ workflows: jobs: # OSSFUZZ builds and (regression) tests - - b_ubu_ossfuzz: *on_all_tags_and_branches + - b_ubu_ossfuzz: *requires_nothing - t_ubu_ossfuzz: *requires_b_ubu_ossfuzz # Code Coverage enabled build and tests - - b_ubu_codecov: *on_all_tags_and_branches + - b_ubu_codecov: *requires_nothing - t_ubu_codecov: *requires_b_ubu_codecov # ASan build and tests - - b_ubu_asan: *on_all_tags_and_branches + - b_ubu_asan: *requires_nothing - b_ubu_san_clang: *job_b_ubu_asan_clang - t_ubu_asan_soltest: *requires_b_ubu_asan - t_ubu_asan_clang_soltest: *requires_b_ubu_asan_clang @@ -1733,5 +1736,5 @@ workflows: - t_ubu_ubsan_clang_cli: *requires_b_ubu_ubsan_clang # Emscripten build and tests that take more than 15 minutes to execute - - b_ems: *on_all_tags_and_branches + - b_ems: *requires_nothing - t_ems_ext: *job_ems_test_ext_colony From 3b2bb4ba50e8326ff66a85cb4ff02b36a845768d Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Mon, 20 Feb 2023 12:00:29 +0100 Subject: [PATCH 19/24] Rename t_ems_ext to t_ext since the job also supports native builds --- .circleci/config.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9ee36b749..b29501ecf 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1211,7 +1211,7 @@ jobs: yarn test - matrix_notify_failure_unless_pr - t_ems_ext: + t_ext: parameters: project: type: string @@ -1626,23 +1626,23 @@ workflows: - t_ems_solcjs: *requires_b_ems - t_ems_ext_hardhat: *requires_b_ems - - t_ems_ext: *job_ems_compile_ext_colony + - t_ext: *job_ems_compile_ext_colony - - t_ems_ext: *job_native_test_ext_gnosis - - t_ems_ext: *job_native_test_ext_zeppelin - - t_ems_ext: *job_native_test_ext_ens - - t_ems_ext: *job_native_test_ext_trident - - t_ems_ext: *job_native_test_ext_euler - - t_ems_ext: *job_native_test_ext_yield_liquidator - - t_ems_ext: *job_native_test_ext_bleeps - - t_ems_ext: *job_native_test_ext_pool_together - - t_ems_ext: *job_native_test_ext_perpetual_pools - - t_ems_ext: *job_native_test_ext_uniswap - - t_ems_ext: *job_native_test_ext_prb_math - - t_ems_ext: *job_native_test_ext_elementfi - - t_ems_ext: *job_native_test_ext_brink - - t_ems_ext: *job_native_test_ext_chainlink - - t_ems_ext: *job_native_test_ext_gp2 + - t_ext: *job_native_test_ext_gnosis + - t_ext: *job_native_test_ext_zeppelin + - t_ext: *job_native_test_ext_ens + - t_ext: *job_native_test_ext_trident + - t_ext: *job_native_test_ext_euler + - t_ext: *job_native_test_ext_yield_liquidator + - t_ext: *job_native_test_ext_bleeps + - t_ext: *job_native_test_ext_pool_together + - t_ext: *job_native_test_ext_perpetual_pools + - t_ext: *job_native_test_ext_uniswap + - t_ext: *job_native_test_ext_prb_math + - t_ext: *job_native_test_ext_elementfi + - t_ext: *job_native_test_ext_brink + - t_ext: *job_native_test_ext_chainlink + - t_ext: *job_native_test_ext_gp2 - c_ext_benchmarks: <<: *requires_nothing @@ -1737,4 +1737,4 @@ workflows: # Emscripten build and tests that take more than 15 minutes to execute - b_ems: *requires_nothing - - t_ems_ext: *job_ems_test_ext_colony + - t_ext: *job_ems_test_ext_colony From e95cfa84bc66e5d12611ddd0391d28b7f7293475 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Mon, 20 Feb 2023 12:37:53 +0100 Subject: [PATCH 20/24] Add space between jobs definitions --- .circleci/config.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index b29501ecf..43b413c3b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -548,77 +548,90 @@ defaults: project: gnosis binary_type: native nodejs_version: '16.18' + - job_native_test_ext_zeppelin: &job_native_test_ext_zeppelin <<: *requires_b_ubu_static name: t_native_test_ext_zeppelin project: zeppelin binary_type: native resource_class: large + - job_native_test_ext_ens: &job_native_test_ext_ens <<: *requires_b_ubu_static name: t_native_test_ext_ens project: ens binary_type: native nodejs_version: '18.11' + - job_native_test_ext_trident: &job_native_test_ext_trident <<: *requires_b_ubu_static name: t_native_test_ext_trident project: trident binary_type: native nodejs_version: '16.18' + - job_native_test_ext_euler: &job_native_test_ext_euler <<: *requires_b_ubu_static name: t_native_test_ext_euler project: euler binary_type: native resource_class: medium + - job_native_test_ext_yield_liquidator: &job_native_test_ext_yield_liquidator <<: *requires_b_ubu_static name: t_native_test_ext_yield_liquidator project: yield-liquidator binary_type: native + - job_native_test_ext_bleeps: &job_native_test_ext_bleeps <<: *requires_b_ubu_static name: t_native_test_ext_bleeps project: bleeps binary_type: native resource_class: medium + - job_native_test_ext_pool_together: &job_native_test_ext_pool_together <<: *requires_b_ubu_static name: t_native_test_ext_pool_together project: pool-together binary_type: native nodejs_version: '16.18' + - job_native_test_ext_perpetual_pools: &job_native_test_ext_perpetual_pools <<: *requires_b_ubu_static name: t_native_test_ext_perpetual_pools project: perpetual-pools binary_type: native nodejs_version: '18.11' + - job_native_test_ext_uniswap: &job_native_test_ext_uniswap <<: *requires_b_ubu_static name: t_native_test_ext_uniswap project: uniswap binary_type: native nodejs_version: '16.18' + - job_native_test_ext_prb_math: &job_native_test_ext_prb_math <<: *requires_b_ubu_static name: t_native_test_ext_prb_math project: prb-math binary_type: native nodejs_version: '18.11' + - job_native_test_ext_elementfi: &job_native_test_ext_elementfi <<: *requires_b_ubu_static name: t_native_test_ext_elementfi project: elementfi binary_type: native resource_class: medium + - job_native_test_ext_brink: &job_native_test_ext_brink <<: *requires_b_ubu_static name: t_native_test_ext_brink project: brink binary_type: native nodejs_version: '18.11' + - job_native_test_ext_chainlink: &job_native_test_ext_chainlink <<: *requires_b_ubu_static name: t_native_test_ext_chainlink @@ -626,12 +639,14 @@ defaults: binary_type: native nodejs_version: '16.18' resource_class: large # Tests run out of memory on a smaller machine + - job_native_test_ext_gp2: &job_native_test_ext_gp2 <<: *requires_b_ubu_static name: t_native_test_ext_gp2 project: gp2 binary_type: native nodejs_version: '18.11' + - job_ems_test_ext_colony: &job_ems_test_ext_colony <<: *requires_b_ems name: t_ems_test_ext_colony @@ -645,6 +660,7 @@ defaults: <<: *on_all_tags_and_branches name: b_ubu_asan_clang cmake_options: -DSANITIZE=address + - job_b_ubu_ubsan_clang: &job_b_ubu_ubsan_clang <<: *on_all_tags_and_branches name: b_ubu_ubsan_clang From 589688b23681a48697c871a2bb4b367ce6210300 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Mon, 27 Mar 2023 17:48:26 +0200 Subject: [PATCH 21/24] Add image parameter to external tests --- .circleci/config.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 43b413c3b..1fb2cc92f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -539,7 +539,7 @@ defaults: project: colony binary_type: solcjs compile_only: 1 - nodejs_version: '14.20' + image: cimg/node:14.20 python2: true - job_native_test_ext_gnosis: &job_native_test_ext_gnosis @@ -547,7 +547,7 @@ defaults: name: t_native_test_ext_gnosis project: gnosis binary_type: native - nodejs_version: '16.18' + image: cimg/node:16.18 - job_native_test_ext_zeppelin: &job_native_test_ext_zeppelin <<: *requires_b_ubu_static @@ -561,14 +561,14 @@ defaults: name: t_native_test_ext_ens project: ens binary_type: native - nodejs_version: '18.11' + image: cimg/node:18.11 - job_native_test_ext_trident: &job_native_test_ext_trident <<: *requires_b_ubu_static name: t_native_test_ext_trident project: trident binary_type: native - nodejs_version: '16.18' + image: cimg/node:16.18 - job_native_test_ext_euler: &job_native_test_ext_euler <<: *requires_b_ubu_static @@ -595,28 +595,28 @@ defaults: name: t_native_test_ext_pool_together project: pool-together binary_type: native - nodejs_version: '16.18' + image: cimg/node:16.18 - job_native_test_ext_perpetual_pools: &job_native_test_ext_perpetual_pools <<: *requires_b_ubu_static name: t_native_test_ext_perpetual_pools project: perpetual-pools binary_type: native - nodejs_version: '18.11' + image: cimg/node:18.11 - job_native_test_ext_uniswap: &job_native_test_ext_uniswap <<: *requires_b_ubu_static name: t_native_test_ext_uniswap project: uniswap binary_type: native - nodejs_version: '16.18' + image: cimg/node:16.18 - job_native_test_ext_prb_math: &job_native_test_ext_prb_math <<: *requires_b_ubu_static name: t_native_test_ext_prb_math project: prb-math binary_type: native - nodejs_version: '18.11' + image: cimg/node:18.11 - job_native_test_ext_elementfi: &job_native_test_ext_elementfi <<: *requires_b_ubu_static @@ -630,14 +630,14 @@ defaults: name: t_native_test_ext_brink project: brink binary_type: native - nodejs_version: '18.11' + image: cimg/node:18.11 - job_native_test_ext_chainlink: &job_native_test_ext_chainlink <<: *requires_b_ubu_static name: t_native_test_ext_chainlink project: chainlink binary_type: native - nodejs_version: '16.18' + image: cimg/node:16.18 resource_class: large # Tests run out of memory on a smaller machine - job_native_test_ext_gp2: &job_native_test_ext_gp2 @@ -645,14 +645,14 @@ defaults: name: t_native_test_ext_gp2 project: gp2 binary_type: native - nodejs_version: '18.11' + image: cimg/node:18.11 - job_ems_test_ext_colony: &job_ems_test_ext_colony <<: *requires_b_ems name: t_ems_test_ext_colony project: colony binary_type: solcjs - nodejs_version: '14.20' + image: cimg/node:14.20 resource_class: medium python2: true @@ -1239,7 +1239,7 @@ jobs: compile_only: type: integer default: 0 - nodejs_version: + image: type: string default: current resource_class: @@ -1249,7 +1249,7 @@ jobs: type: boolean default: false docker: - - image: cimg/node:<> + - image: <> resource_class: <> # NOTE: Each external test runs up to 6 independent settings presets. If parallelism is higher than # actual preset count, some runs will exit immediately. If it's lower, some runs will get more than one preset. From a968f1a18c07717aa30a60bf29aa0884cbcb6895 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Wed, 19 Apr 2023 00:53:28 +0200 Subject: [PATCH 22/24] Fix default image --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1fb2cc92f..90c69e9ff 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1241,7 +1241,7 @@ jobs: default: 0 image: type: string - default: current + default: cimg/node:current resource_class: type: string default: small From f53c0375de6b7c8fe94916e09f63b81ce8094988 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Wed, 19 Apr 2023 00:57:00 +0200 Subject: [PATCH 23/24] Fix ci parameters style --- .circleci/config.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 90c69e9ff..cfeff3f95 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1249,14 +1249,14 @@ jobs: type: boolean default: false docker: - - image: <> - resource_class: <> + - image: << parameters.image >> + resource_class: << parameters.resource_class >> # NOTE: Each external test runs up to 6 independent settings presets. If parallelism is higher than # actual preset count, some runs will exit immediately. If it's lower, some runs will get more than one preset. parallelism: 6 environment: TERM: xterm - COMPILE_ONLY: <> + COMPILE_ONLY: << parameters.compile_only >> steps: - checkout - attach_workspace: @@ -1282,17 +1282,17 @@ jobs: equal: [<< parameters.binary_type >>, "solcjs"] steps: - run: - name: External <> tests (solcjs) + name: External << parameters.project >> tests (solcjs) command: | - test/externalTests/<>.sh solcjs /tmp/workspace/soljson.js + test/externalTests/<< parameters.project >>.sh solcjs /tmp/workspace/soljson.js - when: condition: equal: [<< parameters.binary_type >>, "native"] steps: - run: - name: External <> tests (native) + name: External << parameters.project >> tests (native) command: | - test/externalTests/<>.sh native /tmp/workspace/solc/solc-static-linux + test/externalTests/<< parameters.project >>.sh native /tmp/workspace/solc/solc-static-linux - store_artifacts: path: reports/externalTests/ # persist_to_workspace fails if the directory does not exist and the test script will create From 61beb321b653543771fb192c027f316f58fc1172 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Wed, 19 Apr 2023 14:14:56 +0200 Subject: [PATCH 24/24] Bump ubuntu 2004 and 2204 images --- .circleci/config.yml | 12 ++++++------ scripts/docker/buildpack-deps/Dockerfile.ubuntu2004 | 2 +- scripts/docker/buildpack-deps/Dockerfile.ubuntu2204 | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cfeff3f95..9ee3ccb23 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,16 +9,16 @@ version: 2.1 parameters: ubuntu-2004-docker-image: type: string - # solbuildpackpusher/solidity-buildpack-deps:ubuntu2004-17 - default: "solbuildpackpusher/solidity-buildpack-deps@sha256:87c63f4c0e9be15b60417809cd3245892db281af0f80ed7378a1978f6f170029" + # solbuildpackpusher/solidity-buildpack-deps:ubuntu2004-18 + default: "solbuildpackpusher/solidity-buildpack-deps@sha256:db35d88a16f19adfac6dfd88bda4b32a85a82430f28830aad97bcd10fa4f846c" ubuntu-2204-docker-image: type: string - # solbuildpackpusher/solidity-buildpack-deps:ubuntu2204-2 - default: "solbuildpackpusher/solidity-buildpack-deps@sha256:7f0b62da2aa0920660e67cd17fb3a7f6c57d7da72454003056f3bd27bbda2075" + # solbuildpackpusher/solidity-buildpack-deps:ubuntu2204-3 + default: "solbuildpackpusher/solidity-buildpack-deps@sha256:73e4e80128a0596c3ddb36e36e8039514a9f33ca8799bec82060a49b0cdae461" ubuntu-2204-clang-docker-image: type: string - # solbuildpackpusher/solidity-buildpack-deps:ubuntu2204.clang-1 - default: "solbuildpackpusher/solidity-buildpack-deps@sha256:e515710752bfb38ee0e9b2f92ca71612c03ed85290c36c3b3c0a3d9f90187aef" + # solbuildpackpusher/solidity-buildpack-deps:ubuntu2204.clang-2 + default: "solbuildpackpusher/solidity-buildpack-deps@sha256:0d4fa1da806f9b3daabd2d1dc0842899af794a838e475c14045c3fb289cc8103" ubuntu-clang-ossfuzz-docker-image: type: string # solbuildpackpusher/solidity-buildpack-deps:ubuntu.clang.ossfuzz-23 diff --git a/scripts/docker/buildpack-deps/Dockerfile.ubuntu2004 b/scripts/docker/buildpack-deps/Dockerfile.ubuntu2004 index 7ef5cde7e..682beea20 100644 --- a/scripts/docker/buildpack-deps/Dockerfile.ubuntu2004 +++ b/scripts/docker/buildpack-deps/Dockerfile.ubuntu2004 @@ -22,7 +22,7 @@ # (c) 2016-2019 solidity contributors. #------------------------------------------------------------------------------ FROM buildpack-deps:focal AS base -LABEL version="17" +LABEL version="18" ARG DEBIAN_FRONTEND=noninteractive diff --git a/scripts/docker/buildpack-deps/Dockerfile.ubuntu2204 b/scripts/docker/buildpack-deps/Dockerfile.ubuntu2204 index e45342c58..73ef9f437 100644 --- a/scripts/docker/buildpack-deps/Dockerfile.ubuntu2204 +++ b/scripts/docker/buildpack-deps/Dockerfile.ubuntu2204 @@ -22,7 +22,7 @@ # (c) 2016-2019 solidity contributors. #------------------------------------------------------------------------------ FROM buildpack-deps:jammy AS base -LABEL version="2" +LABEL version="3" ARG DEBIAN_FRONTEND=noninteractive