Merge pull request #13982 from ethereum/cleanup-base-images

Cleanup base images and CI config
This commit is contained in:
Kamil Śliwak 2023-04-21 18:09:30 +02:00 committed by GitHub
commit c694a004be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 267 additions and 279 deletions

View File

@ -9,19 +9,19 @@ version: 2.1
parameters: parameters:
ubuntu-2004-docker-image: ubuntu-2004-docker-image:
type: string type: string
# solbuildpackpusher/solidity-buildpack-deps:ubuntu2004-17 # solbuildpackpusher/solidity-buildpack-deps:ubuntu2004-18
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:87c63f4c0e9be15b60417809cd3245892db281af0f80ed7378a1978f6f170029" default: "solbuildpackpusher/solidity-buildpack-deps@sha256:db35d88a16f19adfac6dfd88bda4b32a85a82430f28830aad97bcd10fa4f846c"
ubuntu-2204-docker-image: ubuntu-2204-docker-image:
type: string type: string
# solbuildpackpusher/solidity-buildpack-deps:ubuntu2204-2 # solbuildpackpusher/solidity-buildpack-deps:ubuntu2204-3
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:7f0b62da2aa0920660e67cd17fb3a7f6c57d7da72454003056f3bd27bbda2075" default: "solbuildpackpusher/solidity-buildpack-deps@sha256:73e4e80128a0596c3ddb36e36e8039514a9f33ca8799bec82060a49b0cdae461"
ubuntu-2204-clang-docker-image: ubuntu-2204-clang-docker-image:
type: string type: string
# solbuildpackpusher/solidity-buildpack-deps:ubuntu2204.clang-2 # solbuildpackpusher/solidity-buildpack-deps:ubuntu2204.clang-2
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:0d4fa1da806f9b3daabd2d1dc0842899af794a838e475c14045c3fb289cc8103" default: "solbuildpackpusher/solidity-buildpack-deps@sha256:0d4fa1da806f9b3daabd2d1dc0842899af794a838e475c14045c3fb289cc8103"
ubuntu-1604-clang-ossfuzz-docker-image: ubuntu-clang-ossfuzz-docker-image:
type: string 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" default: "solbuildpackpusher/solidity-buildpack-deps@sha256:7a84f67829ec2fdcfc8a61ebf22f9dc27b04a9edeb1531565ab3e0ebb1cbc4a0"
emscripten-docker-image: emscripten-docker-image:
type: string type: string
@ -138,12 +138,6 @@ defaults:
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# Artifacts Templates # Artifacts Templates
# the whole build directory
- artifacts_build_dir: &artifacts_build_dir
root: build
paths:
- "*"
# compiled solc executable target # compiled solc executable target
- artifacts_solc: &artifacts_solc - artifacts_solc: &artifacts_solc
path: build/solc/solc path: build/solc/solc
@ -261,45 +255,89 @@ defaults:
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# Base Image Templates # Base Image Templates
- base_ubuntu1604_clang: &base_ubuntu1604_clang - base_archlinux: &base_archlinux
docker: docker:
- image: << pipeline.parameters.ubuntu-1604-clang-ossfuzz-docker-image >> - image: archlinux:base
environment: environment:
TERM: xterm TERM: xterm
MAKEFLAGS: -j 3 MAKEFLAGS: -j 3
- base_ubuntu1604_clang_small: &base_ubuntu1604_clang_small - base_archlinux_large: &base_archlinux_large
<<: *base_ubuntu1604_clang 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 resource_class: small
environment: environment:
TERM: xterm TERM: xterm
MAKEFLAGS: -j 2 MAKEFLAGS: -j 2
- base_ubuntu2204_clang: &base_ubuntu2204_clang - base_ems_large: &base_ems_large
docker: docker:
- image: << pipeline.parameters.ubuntu-2204-clang-docker-image >> - image: << pipeline.parameters.emscripten-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 resource_class: large
environment: environment:
TERM: xterm TERM: xterm
CC: clang
CXX: clang++
MAKEFLAGS: -j 5 MAKEFLAGS: -j 5
- base_ubuntu2004: &base_ubuntu2004 - base_node_small: &base_node_small
docker: docker:
- image: << pipeline.parameters.ubuntu-2004-docker-image >> - 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_ubuntu_clang: &base_ubuntu_clang
docker:
- image: << pipeline.parameters.ubuntu-clang-ossfuzz-docker-image >>
environment: environment:
TERM: xterm TERM: xterm
MAKEFLAGS: -j 3 MAKEFLAGS: -j 3
- base_ubuntu_clang_small: &base_ubuntu_clang_small
<<: *base_ubuntu_clang
resource_class: small
environment:
TERM: xterm
MAKEFLAGS: -j 2
- base_ubuntu2004: &base_ubuntu2004
docker:
- image: << pipeline.parameters.ubuntu-2004-docker-image >>
environment:
TERM: xterm
MAKEFLAGS: -j 3
- base_ubuntu2004_small: &base_ubuntu2004_small - base_ubuntu2004_small: &base_ubuntu2004_small
<<: *base_ubuntu2004 <<: *base_ubuntu2004
resource_class: small resource_class: small
@ -321,6 +359,24 @@ defaults:
TERM: xterm TERM: xterm
MAKEFLAGS: -j 3 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_small: &base_ubuntu2204_small
<<: *base_ubuntu2204 <<: *base_ubuntu2204
resource_class: small resource_class: small
@ -342,28 +398,10 @@ defaults:
TERM: xterm TERM: xterm
MAKEFLAGS: -j 10 MAKEFLAGS: -j 10
- base_cimg_small: &base_cimg_small - base_win_bash: &base_win_bash
docker: executor:
- image: cimg/base:current name: win/default
resource_class: small shell: bash.exe
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_powershell: &base_win_powershell - base_win_powershell: &base_win_powershell
executor: executor:
@ -376,132 +414,92 @@ defaults:
shell: powershell.exe shell: powershell.exe
size: large 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 # Workflow Templates
- workflow_trigger_on_tags: &workflow_trigger_on_tags - on_all_tags_and_branches: &on_all_tags_and_branches
filters: filters:
tags: tags:
only: /.*/ only: /.*/
- workflow_trigger_on_releases: &workflow_trigger_on_releases - on_version_tags: &on_version_tags
filters: filters:
tags: tags:
only: /^v.*/ only: /^v.*/
branches: branches:
ignore: /.*/ ignore: /.*/
- workflow_ubuntu2204: &workflow_ubuntu2204 - on_develop: &on_develop
<<: *workflow_trigger_on_tags filters:
branches:
only:
- develop
- requires_nothing: &requires_nothing
<<: *on_all_tags_and_branches
- requires_b_ubu: &requires_b_ubu
<<: *on_all_tags_and_branches
requires: requires:
- b_ubu - b_ubu
- workflow_ubuntu1604_clang: &workflow_ubuntu1604_clang - requires_b_ubu_clang: &requires_b_ubu_clang
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
requires:
- b_ubu_ossfuzz
- workflow_ubuntu2204_clang: &workflow_ubuntu2204_clang
<<: *workflow_trigger_on_tags
requires: requires:
- b_ubu_clang - b_ubu_clang
- workflow_ubuntu2204_force_release: &workflow_ubuntu2204_force_release - requires_b_ubu_force_release: &requires_b_ubu_force_release
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
requires: requires:
- b_ubu_force_release - b_ubu_force_release
- workflow_ubuntu2004_static: &workflow_ubuntu2004_static - requires_b_ubu_static: &requires_b_ubu_static
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
requires: requires:
- b_ubu_static - b_ubu_static
- workflow_archlinux: &workflow_archlinux - requires_b_archlinux: &requires_b_archlinux
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
requires: requires:
- b_archlinux - b_archlinux
- workflow_ubuntu2204_codecov: &workflow_ubuntu2204_codecov - requires_b_ubu_codecov: &requires_b_ubu_codecov
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
requires: requires:
- b_ubu_codecov - b_ubu_codecov
- workflow_osx: &workflow_osx - requires_b_osx: &requires_b_osx
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
requires: requires:
- b_osx - b_osx
- workflow_ubuntu2204_asan: &workflow_ubuntu2204_asan - requires_b_ubu_asan: &requires_b_ubu_asan
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
requires: requires:
- b_ubu_asan - b_ubu_asan
- workflow_ubuntu2204_asan_clang: &workflow_ubuntu2204_asan_clang - requires_b_ubu_asan_clang: &requires_b_ubu_asan_clang
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
requires: requires:
- b_ubu_asan_clang - b_ubu_asan_clang
- workflow_ubuntu2204_ubsan_clang: &workflow_ubuntu2204_ubsan_clang - requires_b_ubu_ubsan_clang: &requires_b_ubu_ubsan_clang
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
requires: requires:
- b_ubu_ubsan_clang - b_ubu_ubsan_clang
- workflow_emscripten: &workflow_emscripten - requires_b_ems: &requires_b_ems
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
requires: requires:
- b_ems - b_ems
- workflow_ubuntu1604_ossfuzz: &workflow_ubuntu1604_ossfuzz - requires_b_ubu_ossfuzz: &requires_b_ubu_ossfuzz
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
requires: requires:
- b_ubu_ossfuzz - b_ubu_ossfuzz
- workflow_win: &workflow_win - requires_b_win: &requires_b_win
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
requires: requires:
- b_win - b_win
@ -510,119 +508,135 @@ defaults:
# Separate compile-only runs of those external tests where a full run takes much longer. # 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 - job_ems_compile_ext_colony: &job_ems_compile_ext_colony
<<: *workflow_emscripten <<: *requires_b_ems
name: t_ems_compile_ext_colony name: t_ems_compile_ext_colony
project: colony project: colony
binary_type: solcjs binary_type: solcjs
compile_only: 1 compile_only: 1
nodejs_version: '14.20' image: cimg/node:14.20
python2: true python2: true
- job_native_test_ext_gnosis: &job_native_test_ext_gnosis - job_native_test_ext_gnosis: &job_native_test_ext_gnosis
<<: *workflow_ubuntu2004_static <<: *requires_b_ubu_static
name: t_native_test_ext_gnosis name: t_native_test_ext_gnosis
project: gnosis project: gnosis
binary_type: native binary_type: native
nodejs_version: '16.18' image: cimg/node:16.18
- job_native_test_ext_zeppelin: &job_native_test_ext_zeppelin - job_native_test_ext_zeppelin: &job_native_test_ext_zeppelin
<<: *workflow_ubuntu2004_static <<: *requires_b_ubu_static
name: t_native_test_ext_zeppelin name: t_native_test_ext_zeppelin
project: zeppelin project: zeppelin
binary_type: native binary_type: native
resource_class: large resource_class: large
- job_native_test_ext_ens: &job_native_test_ext_ens - job_native_test_ext_ens: &job_native_test_ext_ens
<<: *workflow_ubuntu2004_static <<: *requires_b_ubu_static
name: t_native_test_ext_ens name: t_native_test_ext_ens
project: ens project: ens
binary_type: native binary_type: native
nodejs_version: '18.11' image: cimg/node:18.11
- job_native_test_ext_trident: &job_native_test_ext_trident - job_native_test_ext_trident: &job_native_test_ext_trident
<<: *workflow_ubuntu2004_static <<: *requires_b_ubu_static
name: t_native_test_ext_trident name: t_native_test_ext_trident
project: trident project: trident
binary_type: native binary_type: native
nodejs_version: '16.18' image: cimg/node:16.18
- job_native_test_ext_euler: &job_native_test_ext_euler - job_native_test_ext_euler: &job_native_test_ext_euler
<<: *workflow_ubuntu2004_static <<: *requires_b_ubu_static
name: t_native_test_ext_euler name: t_native_test_ext_euler
project: euler project: euler
binary_type: native binary_type: native
resource_class: medium resource_class: medium
- job_native_test_ext_yield_liquidator: &job_native_test_ext_yield_liquidator - 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 name: t_native_test_ext_yield_liquidator
project: yield-liquidator project: yield-liquidator
binary_type: native binary_type: native
- job_native_test_ext_bleeps: &job_native_test_ext_bleeps - job_native_test_ext_bleeps: &job_native_test_ext_bleeps
<<: *workflow_ubuntu2004_static <<: *requires_b_ubu_static
name: t_native_test_ext_bleeps name: t_native_test_ext_bleeps
project: bleeps project: bleeps
binary_type: native binary_type: native
resource_class: medium resource_class: medium
- job_native_test_ext_pool_together: &job_native_test_ext_pool_together - 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 name: t_native_test_ext_pool_together
project: pool-together project: pool-together
binary_type: native binary_type: native
nodejs_version: '16.18' image: cimg/node:16.18
- job_native_test_ext_perpetual_pools: &job_native_test_ext_perpetual_pools - 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 name: t_native_test_ext_perpetual_pools
project: perpetual-pools project: perpetual-pools
binary_type: native binary_type: native
nodejs_version: '18.11' image: cimg/node:18.11
- job_native_test_ext_uniswap: &job_native_test_ext_uniswap - job_native_test_ext_uniswap: &job_native_test_ext_uniswap
<<: *workflow_ubuntu2004_static <<: *requires_b_ubu_static
name: t_native_test_ext_uniswap name: t_native_test_ext_uniswap
project: uniswap project: uniswap
binary_type: native binary_type: native
nodejs_version: '16.18' image: cimg/node:16.18
- job_native_test_ext_prb_math: &job_native_test_ext_prb_math - 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 name: t_native_test_ext_prb_math
project: prb-math project: prb-math
binary_type: native binary_type: native
nodejs_version: '18.11' image: cimg/node:18.11
- job_native_test_ext_elementfi: &job_native_test_ext_elementfi - job_native_test_ext_elementfi: &job_native_test_ext_elementfi
<<: *workflow_ubuntu2004_static <<: *requires_b_ubu_static
name: t_native_test_ext_elementfi name: t_native_test_ext_elementfi
project: elementfi project: elementfi
binary_type: native binary_type: native
resource_class: medium resource_class: medium
- job_native_test_ext_brink: &job_native_test_ext_brink - job_native_test_ext_brink: &job_native_test_ext_brink
<<: *workflow_ubuntu2004_static <<: *requires_b_ubu_static
name: t_native_test_ext_brink name: t_native_test_ext_brink
project: brink project: brink
binary_type: native binary_type: native
nodejs_version: '18.11' image: cimg/node:18.11
- job_native_test_ext_chainlink: &job_native_test_ext_chainlink - job_native_test_ext_chainlink: &job_native_test_ext_chainlink
<<: *workflow_ubuntu2004_static <<: *requires_b_ubu_static
name: t_native_test_ext_chainlink name: t_native_test_ext_chainlink
project: chainlink project: chainlink
binary_type: native binary_type: native
nodejs_version: '16.18' image: cimg/node:16.18
resource_class: large # Tests run out of memory on a smaller machine resource_class: large # Tests run out of memory on a smaller machine
- job_native_test_ext_gp2: &job_native_test_ext_gp2 - job_native_test_ext_gp2: &job_native_test_ext_gp2
<<: *workflow_ubuntu2004_static <<: *requires_b_ubu_static
name: t_native_test_ext_gp2 name: t_native_test_ext_gp2
project: gp2 project: gp2
binary_type: native binary_type: native
nodejs_version: '18.11' image: cimg/node:18.11
- job_ems_test_ext_colony: &job_ems_test_ext_colony - job_ems_test_ext_colony: &job_ems_test_ext_colony
<<: *workflow_emscripten <<: *requires_b_ems
name: t_ems_test_ext_colony name: t_ems_test_ext_colony
project: colony project: colony
binary_type: solcjs binary_type: solcjs
nodejs_version: '14.20' image: cimg/node:14.20
resource_class: medium resource_class: medium
python2: true python2: true
- job_b_ubu_asan_clang: &job_b_ubu_asan_clang - job_b_ubu_asan_clang: &job_b_ubu_asan_clang
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
name: b_ubu_asan_clang name: b_ubu_asan_clang
cmake_options: -DSANITIZE=address cmake_options: -DSANITIZE=address
- job_b_ubu_ubsan_clang: &job_b_ubu_ubsan_clang - job_b_ubu_ubsan_clang: &job_b_ubu_ubsan_clang
<<: *workflow_trigger_on_tags <<: *on_all_tags_and_branches
name: b_ubu_ubsan_clang name: b_ubu_ubsan_clang
cmake_options: -DSANITIZE=undefined cmake_options: -DSANITIZE=undefined
@ -901,7 +915,7 @@ jobs:
- matrix_notify_failure_unless_pr - matrix_notify_failure_unless_pr
b_ubu_ossfuzz: &b_ubu_ossfuzz b_ubu_ossfuzz: &b_ubu_ossfuzz
<<: *base_ubuntu1604_clang <<: *base_ubuntu_clang
steps: steps:
- checkout - checkout
- run: *setup_prerelease_commit_hash - run: *setup_prerelease_commit_hash
@ -910,7 +924,7 @@ jobs:
- matrix_notify_failure_unless_pr - matrix_notify_failure_unless_pr
t_ubu_ossfuzz: &t_ubu_ossfuzz t_ubu_ossfuzz: &t_ubu_ossfuzz
<<: *base_ubuntu1604_clang_small <<: *base_ubuntu_clang_small
steps: steps:
- checkout - checkout
- attach_workspace: - attach_workspace:
@ -1089,11 +1103,6 @@ jobs:
- checkout - checkout
- attach_workspace: - attach_workspace:
at: build 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 - run: test/localeTest.sh build/solc/solc
- matrix_notify_failure_unless_pr - matrix_notify_failure_unless_pr
@ -1192,7 +1201,7 @@ jobs:
yarn test yarn test
- matrix_notify_failure_unless_pr - matrix_notify_failure_unless_pr
t_ems_ext: t_ext:
parameters: parameters:
project: project:
type: string type: string
@ -1204,9 +1213,9 @@ jobs:
compile_only: compile_only:
type: integer type: integer
default: 0 default: 0
nodejs_version: image:
type: string type: string
default: current default: cimg/node:current
resource_class: resource_class:
type: string type: string
default: small default: small
@ -1214,14 +1223,14 @@ jobs:
type: boolean type: boolean
default: false default: false
docker: docker:
- image: cimg/node:<<parameters.nodejs_version>> - image: << parameters.image >>
resource_class: <<parameters.resource_class>> resource_class: << parameters.resource_class >>
# NOTE: Each external test runs up to 6 independent settings presets. If parallelism is higher than # 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. # actual preset count, some runs will exit immediately. If it's lower, some runs will get more than one preset.
parallelism: 6 parallelism: 6
environment: environment:
TERM: xterm TERM: xterm
COMPILE_ONLY: <<parameters.compile_only>> COMPILE_ONLY: << parameters.compile_only >>
steps: steps:
- checkout - checkout
- attach_workspace: - attach_workspace:
@ -1247,17 +1256,17 @@ jobs:
equal: [<< parameters.binary_type >>, "solcjs"] equal: [<< parameters.binary_type >>, "solcjs"]
steps: steps:
- run: - run:
name: External <<parameters.project>> tests (solcjs) name: External << parameters.project >> tests (solcjs)
command: | command: |
test/externalTests/<<parameters.project>>.sh solcjs /tmp/workspace/soljson.js test/externalTests/<< parameters.project >>.sh solcjs /tmp/workspace/soljson.js
- when: - when:
condition: condition:
equal: [<< parameters.binary_type >>, "native"] equal: [<< parameters.binary_type >>, "native"]
steps: steps:
- run: - run:
name: External <<parameters.project>> tests (native) name: External << parameters.project >> tests (native)
command: | command: |
test/externalTests/<<parameters.project>>.sh native /tmp/workspace/solc/solc-static-linux test/externalTests/<< parameters.project >>.sh native /tmp/workspace/solc/solc-static-linux
- store_artifacts: - store_artifacts:
path: reports/externalTests/ path: reports/externalTests/
# persist_to_workspace fails if the directory does not exist and the test script will create # persist_to_workspace fails if the directory does not exist and the test script will create
@ -1501,12 +1510,6 @@ jobs:
name: Print diff name: Print diff
when: on_fail when: on_fail
command: diff --unified=0 --report-identical-files --from-file $REPORT_FILES | head --lines 50 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: - run:
name: Bundle reports into a single package name: Bundle reports into a single package
when: on_fail when: on_fail
@ -1564,75 +1567,75 @@ workflows:
main: main:
jobs: jobs:
# basic checks # basic checks
- chk_spelling: *workflow_trigger_on_tags - chk_spelling: *requires_nothing
- chk_coding_style: *workflow_trigger_on_tags - chk_coding_style: *requires_nothing
# DISABLED FOR 0.6.0 - chk_docs_examples: *workflow_trigger_on_tags # DISABLED FOR 0.6.0 - chk_docs_examples: *requires_nothing
- chk_buglist: *workflow_trigger_on_tags - chk_buglist: *requires_nothing
- chk_proofs: *workflow_trigger_on_tags - chk_proofs: *requires_nothing
- chk_pylint: *workflow_trigger_on_tags - chk_pylint: *requires_nothing
- chk_errorcodes: *workflow_trigger_on_tags - chk_errorcodes: *requires_nothing
- chk_antlr_grammar: *workflow_trigger_on_tags - chk_antlr_grammar: *requires_nothing
- chk_docs_pragma_min_version: *workflow_trigger_on_tags - chk_docs_pragma_min_version: *requires_nothing
- t_ubu_pyscripts: *workflow_trigger_on_tags - t_ubu_pyscripts: *requires_nothing
- t_win_pyscripts: *workflow_trigger_on_tags - t_win_pyscripts: *requires_nothing
# build-only # build-only
- b_docs: *workflow_trigger_on_tags - b_docs: *requires_nothing
# DISABLED FOR 0.8.18 - b_ubu_cxx20: *workflow_trigger_on_tags # DISABLED FOR 0.8.18 - b_ubu_cxx20: *requires_nothing
# Issue: https://github.com/ethereum/solidity/issues/13868 # Issue: https://github.com/ethereum/solidity/issues/13868
- b_ubu_ossfuzz: *workflow_trigger_on_tags - b_ubu_ossfuzz: *requires_nothing
# OS/X build and tests # OS/X build and tests
- b_osx: *workflow_trigger_on_tags - b_osx: *requires_nothing
- t_osx_cli: *workflow_osx - t_osx_cli: *requires_b_osx
- t_osx_soltest: *workflow_osx - t_osx_soltest: *requires_b_osx
# ArchLinux build and tests # ArchLinux build and tests
- b_archlinux: *workflow_trigger_on_tags - b_archlinux: *requires_nothing
- t_archlinux_soltest: *workflow_archlinux - t_archlinux_soltest: *requires_b_archlinux
# Static build # Static build
- b_ubu_static: *workflow_trigger_on_tags - b_ubu_static: *requires_nothing
# Ubuntu build and tests # Ubuntu build and tests
- b_ubu: *workflow_trigger_on_tags - b_ubu: *requires_nothing
- t_ubu_cli: *workflow_ubuntu2204 - t_ubu_cli: *requires_b_ubu
- t_ubu_locale: *workflow_ubuntu2204 - t_ubu_locale: *requires_b_ubu
- t_ubu_soltest_all: *workflow_ubuntu2204 - t_ubu_soltest_all: *requires_b_ubu
- b_ubu_clang: *workflow_trigger_on_tags - b_ubu_clang: *requires_nothing
- t_ubu_clang_soltest: *workflow_ubuntu2204_clang - t_ubu_clang_soltest: *requires_b_ubu_clang
- t_ubu_lsp: *workflow_ubuntu2204 - t_ubu_lsp: *requires_b_ubu
# Ubuntu fake release build and tests # Ubuntu fake release build and tests
- b_ubu_force_release: *workflow_trigger_on_tags - b_ubu_force_release: *requires_nothing
- t_ubu_force_release_cli: *workflow_ubuntu2204_force_release - t_ubu_force_release_cli: *requires_b_ubu_force_release
- t_ubu_force_release_soltest_all: *workflow_ubuntu2204_force_release - t_ubu_force_release_soltest_all: *requires_b_ubu_force_release
# Emscripten build and tests that take 15 minutes or less # Emscripten build and tests that take 15 minutes or less
- b_ems: *workflow_trigger_on_tags - b_ems: *requires_nothing
- t_ems_solcjs: *workflow_emscripten - t_ems_solcjs: *requires_b_ems
- t_ems_ext_hardhat: *workflow_emscripten - 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_ext: *job_native_test_ext_gnosis
- t_ems_ext: *job_native_test_ext_zeppelin - t_ext: *job_native_test_ext_zeppelin
- t_ems_ext: *job_native_test_ext_ens - t_ext: *job_native_test_ext_ens
- t_ems_ext: *job_native_test_ext_trident - t_ext: *job_native_test_ext_trident
- t_ems_ext: *job_native_test_ext_euler - t_ext: *job_native_test_ext_euler
- t_ems_ext: *job_native_test_ext_yield_liquidator - t_ext: *job_native_test_ext_yield_liquidator
- t_ems_ext: *job_native_test_ext_bleeps - t_ext: *job_native_test_ext_bleeps
- t_ems_ext: *job_native_test_ext_pool_together - t_ext: *job_native_test_ext_pool_together
- t_ems_ext: *job_native_test_ext_perpetual_pools - t_ext: *job_native_test_ext_perpetual_pools
- t_ems_ext: *job_native_test_ext_uniswap - t_ext: *job_native_test_ext_uniswap
- t_ems_ext: *job_native_test_ext_prb_math - t_ext: *job_native_test_ext_prb_math
- t_ems_ext: *job_native_test_ext_elementfi - t_ext: *job_native_test_ext_elementfi
- t_ems_ext: *job_native_test_ext_brink - t_ext: *job_native_test_ext_brink
- t_ems_ext: *job_native_test_ext_chainlink - t_ext: *job_native_test_ext_chainlink
- t_ems_ext: *job_native_test_ext_gp2 - t_ext: *job_native_test_ext_gp2
- c_ext_benchmarks: - c_ext_benchmarks:
<<: *workflow_trigger_on_tags <<: *requires_nothing
requires: requires:
- t_ems_compile_ext_colony - t_ems_compile_ext_colony
- t_native_test_ext_gnosis - t_native_test_ext_gnosis
@ -1652,32 +1655,32 @@ workflows:
- t_native_test_ext_gp2 - t_native_test_ext_gp2
# Windows build and tests # Windows build and tests
- b_win: *workflow_trigger_on_tags - b_win: *requires_nothing
- t_win_soltest: *workflow_win - t_win_soltest: *requires_b_win
# Bytecode comparison: # Bytecode comparison:
- b_bytecode_ubu_static: - b_bytecode_ubu_static:
<<: *workflow_trigger_on_tags <<: *requires_nothing
requires: requires:
- b_ubu_static - b_ubu_static
- b_bytecode_ubu: - b_bytecode_ubu:
<<: *workflow_trigger_on_tags <<: *requires_nothing
requires: requires:
- b_ubu - b_ubu
- b_bytecode_win: - b_bytecode_win:
<<: *workflow_trigger_on_tags <<: *requires_nothing
requires: requires:
- b_win - b_win
- b_bytecode_osx: - b_bytecode_osx:
<<: *workflow_trigger_on_tags <<: *requires_nothing
requires: requires:
- b_osx - b_osx
- b_bytecode_ems: - b_bytecode_ems:
<<: *workflow_trigger_on_tags <<: *requires_nothing
requires: requires:
- b_ems - b_ems
- t_bytecode_compare: - t_bytecode_compare:
<<: *workflow_trigger_on_tags <<: *requires_nothing
requires: requires:
- b_bytecode_ubu_static - b_bytecode_ubu_static
- b_bytecode_ubu - b_bytecode_ubu
@ -1687,7 +1690,7 @@ workflows:
# Final artifacts # Final artifacts
- c_release_binaries: - c_release_binaries:
<<: *workflow_trigger_on_releases <<: *on_version_tags
requires: requires:
- b_ubu_static - b_ubu_static
- b_osx - b_osx
@ -1699,32 +1702,29 @@ workflows:
triggers: triggers:
- schedule: - schedule:
cron: "0 0 * * *" cron: "0 0 * * *"
filters: <<: *on_develop
branches:
only:
- develop
jobs: jobs:
# OSSFUZZ builds and (regression) tests # OSSFUZZ builds and (regression) tests
- b_ubu_ossfuzz: *workflow_trigger_on_tags - b_ubu_ossfuzz: *requires_nothing
- t_ubu_ossfuzz: *workflow_ubuntu1604_ossfuzz - t_ubu_ossfuzz: *requires_b_ubu_ossfuzz
# Code Coverage enabled build and tests # Code Coverage enabled build and tests
- b_ubu_codecov: *workflow_trigger_on_tags - b_ubu_codecov: *requires_nothing
- t_ubu_codecov: *workflow_ubuntu2204_codecov - t_ubu_codecov: *requires_b_ubu_codecov
# ASan build and tests # ASan build and tests
- b_ubu_asan: *workflow_trigger_on_tags - b_ubu_asan: *requires_nothing
- b_ubu_san_clang: *job_b_ubu_asan_clang - b_ubu_san_clang: *job_b_ubu_asan_clang
- t_ubu_asan_soltest: *workflow_ubuntu2204_asan - t_ubu_asan_soltest: *requires_b_ubu_asan
- t_ubu_asan_clang_soltest: *workflow_ubuntu2204_asan_clang - t_ubu_asan_clang_soltest: *requires_b_ubu_asan_clang
- t_ubu_asan_cli: *workflow_ubuntu2204_asan - t_ubu_asan_cli: *requires_b_ubu_asan
# UBSan build and tests # UBSan build and tests
- b_ubu_san_clang: *job_b_ubu_ubsan_clang - b_ubu_san_clang: *job_b_ubu_ubsan_clang
- t_ubu_ubsan_clang_soltest: *workflow_ubuntu2204_ubsan_clang - t_ubu_ubsan_clang_soltest: *requires_b_ubu_ubsan_clang
- t_ubu_ubsan_clang_cli: *workflow_ubuntu2204_ubsan_clang - t_ubu_ubsan_clang_cli: *requires_b_ubu_ubsan_clang
# Emscripten build and tests that take more than 15 minutes to execute # Emscripten build and tests that take more than 15 minutes to execute
- b_ems: *workflow_trigger_on_tags - b_ems: *requires_nothing
- t_ems_ext: *job_ems_test_ext_colony - t_ext: *job_ems_test_ext_colony

View File

@ -5,7 +5,7 @@ on:
branches: [ develop ] branches: [ develop ]
paths: paths:
- 'scripts/docker/buildpack-deps/Dockerfile.emscripten' - '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.ubuntu2004'
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2204.clang' - 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2204.clang'
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2204' - 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2204'
@ -23,7 +23,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
image_variant: [emscripten, ubuntu1604.clang.ossfuzz, ubuntu2004, ubuntu2204.clang, ubuntu2204] image_variant: [emscripten, ubuntu.clang.ossfuzz, ubuntu2004, ubuntu2204.clang, ubuntu2204]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2

View File

@ -1,7 +1,7 @@
# vim:syntax=dockerfile # vim:syntax=dockerfile
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Dockerfile for building and testing Solidity Compiler on CI # 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 # URL: https://hub.docker.com/r/ethereum/solidity-buildpack-deps
# #
# This file is part of solidity. # This file is part of solidity.

View File

@ -22,7 +22,7 @@
# (c) 2016-2019 solidity contributors. # (c) 2016-2019 solidity contributors.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
FROM buildpack-deps:focal AS base FROM buildpack-deps:focal AS base
LABEL version="17" LABEL version="18"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
@ -57,18 +57,6 @@ RUN set -ex; \
ninja install/strip; \ ninja install/strip; \
rm -rf /usr/src/evmone 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 FROM base
COPY --from=libraries /usr/lib /usr/lib COPY --from=libraries /usr/lib /usr/lib
COPY --from=libraries /usr/bin /usr/bin COPY --from=libraries /usr/bin /usr/bin

View File

@ -22,7 +22,7 @@
# (c) 2016-2019 solidity contributors. # (c) 2016-2019 solidity contributors.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
FROM buildpack-deps:jammy AS base FROM buildpack-deps:jammy AS base
LABEL version="2" LABEL version="3"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
@ -38,7 +38,7 @@ RUN set -ex; \
libboost-filesystem-dev libboost-test-dev libboost-system-dev \ libboost-filesystem-dev libboost-test-dev libboost-system-dev \
libboost-program-options-dev \ libboost-program-options-dev \
libcvc4-dev libz3-static-dev z3-static jq \ libcvc4-dev libz3-static-dev z3-static jq \
libcln-dev; \ libcln-dev zip locales-all; \
apt-get install -qy python3-pip python3-sphinx; \ apt-get install -qy python3-pip python3-sphinx; \
pip3 install codecov; \ pip3 install codecov; \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*

View File

@ -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. 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: 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` * `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`. These scripts `scripts/ci/build.sh` and `scripts/ci/build_ossfuzz.sh` are also used by CircleCI, see `.circleci/config.yml`.

View File

@ -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: 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 $ 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 - Login to the docker container sourced from the image built in the previous step from the solidity parent directory