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:
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-2
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:0d4fa1da806f9b3daabd2d1dc0842899af794a838e475c14045c3fb289cc8103"
ubuntu-1604-clang-ossfuzz-docker-image:
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
@ -138,12 +138,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
@ -261,38 +255,82 @@ defaults:
# --------------------------------------------------------------------------
# Base Image Templates
- base_ubuntu1604_clang: &base_ubuntu1604_clang
- base_archlinux: &base_archlinux
docker:
- image: << pipeline.parameters.ubuntu-1604-clang-ossfuzz-docker-image >>
- image: archlinux:base
environment:
TERM: xterm
MAKEFLAGS: -j 3
- base_ubuntu1604_clang_small: &base_ubuntu1604_clang_small
<<: *base_ubuntu1604_clang
- 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_ubuntu2204_clang: &base_ubuntu2204_clang
- base_ems_large: &base_ems_large
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
- image: << pipeline.parameters.emscripten-docker-image >>
resource_class: large
environment:
TERM: xterm
CC: clang
CXX: clang++
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_ubuntu_clang: &base_ubuntu_clang
docker:
- image: << pipeline.parameters.ubuntu-clang-ossfuzz-docker-image >>
environment:
TERM: xterm
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 >>
@ -321,6 +359,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
@ -342,28 +398,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:
@ -376,132 +414,92 @@ 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
- workflow_trigger_on_tags: &workflow_trigger_on_tags
- on_all_tags_and_branches: &on_all_tags_and_branches
filters:
tags:
only: /.*/
- workflow_trigger_on_releases: &workflow_trigger_on_releases
- on_version_tags: &on_version_tags
filters:
tags:
only: /^v.*/
branches:
ignore: /.*/
- workflow_ubuntu2204: &workflow_ubuntu2204
<<: *workflow_trigger_on_tags
- on_develop: &on_develop
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:
- 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_b_ubu_clang: &requires_b_ubu_clang
<<: *on_all_tags_and_branches
requires:
- b_ubu_clang
- workflow_ubuntu2204_force_release: &workflow_ubuntu2204_force_release
<<: *workflow_trigger_on_tags
- requires_b_ubu_force_release: &requires_b_ubu_force_release
<<: *on_all_tags_and_branches
requires:
- b_ubu_force_release
- workflow_ubuntu2004_static: &workflow_ubuntu2004_static
<<: *workflow_trigger_on_tags
- requires_b_ubu_static: &requires_b_ubu_static
<<: *on_all_tags_and_branches
requires:
- b_ubu_static
- workflow_archlinux: &workflow_archlinux
<<: *workflow_trigger_on_tags
- requires_b_archlinux: &requires_b_archlinux
<<: *on_all_tags_and_branches
requires:
- b_archlinux
- workflow_ubuntu2204_codecov: &workflow_ubuntu2204_codecov
<<: *workflow_trigger_on_tags
- requires_b_ubu_codecov: &requires_b_ubu_codecov
<<: *on_all_tags_and_branches
requires:
- b_ubu_codecov
- workflow_osx: &workflow_osx
<<: *workflow_trigger_on_tags
- requires_b_osx: &requires_b_osx
<<: *on_all_tags_and_branches
requires:
- b_osx
- workflow_ubuntu2204_asan: &workflow_ubuntu2204_asan
<<: *workflow_trigger_on_tags
- 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
<<: *workflow_trigger_on_tags
- 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
<<: *workflow_trigger_on_tags
- requires_b_ubu_ubsan_clang: &requires_b_ubu_ubsan_clang
<<: *on_all_tags_and_branches
requires:
- b_ubu_ubsan_clang
- workflow_emscripten: &workflow_emscripten
<<: *workflow_trigger_on_tags
- requires_b_ems: &requires_b_ems
<<: *on_all_tags_and_branches
requires:
- b_ems
- workflow_ubuntu1604_ossfuzz: &workflow_ubuntu1604_ossfuzz
<<: *workflow_trigger_on_tags
- requires_b_ubu_ossfuzz: &requires_b_ubu_ossfuzz
<<: *on_all_tags_and_branches
requires:
- b_ubu_ossfuzz
- workflow_win: &workflow_win
<<: *workflow_trigger_on_tags
- requires_b_win: &requires_b_win
<<: *on_all_tags_and_branches
requires:
- b_win
@ -510,119 +508,135 @@ 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_b_ems
name: t_ems_compile_ext_colony
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
<<: *workflow_ubuntu2004_static
<<: *requires_b_ubu_static
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
<<: *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'
image: cimg/node: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'
image: cimg/node: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'
image: cimg/node: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'
image: cimg/node: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'
image: cimg/node: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'
image: cimg/node: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'
image: cimg/node: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'
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
<<: *workflow_ubuntu2004_static
<<: *requires_b_ubu_static
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
<<: *workflow_emscripten
<<: *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
- 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
@ -901,7 +915,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
@ -910,7 +924,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:
@ -1089,11 +1103,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
@ -1192,7 +1201,7 @@ jobs:
yarn test
- matrix_notify_failure_unless_pr
t_ems_ext:
t_ext:
parameters:
project:
type: string
@ -1204,9 +1213,9 @@ jobs:
compile_only:
type: integer
default: 0
nodejs_version:
image:
type: string
default: current
default: cimg/node:current
resource_class:
type: string
default: small
@ -1214,7 +1223,7 @@ jobs:
type: boolean
default: false
docker:
- image: cimg/node:<<parameters.nodejs_version>>
- 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.
@ -1501,12 +1510,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
@ -1564,75 +1567,75 @@ 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: *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: *workflow_trigger_on_tags
# DISABLED FOR 0.8.18 - b_ubu_cxx20: *workflow_trigger_on_tags
- 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: *workflow_trigger_on_tags
- b_ubu_ossfuzz: *requires_nothing
# OS/X build and tests
- b_osx: *workflow_trigger_on_tags
- t_osx_cli: *workflow_osx
- t_osx_soltest: *workflow_osx
- b_osx: *requires_nothing
- t_osx_cli: *requires_b_osx
- t_osx_soltest: *requires_b_osx
# ArchLinux build and tests
- b_archlinux: *workflow_trigger_on_tags
- t_archlinux_soltest: *workflow_archlinux
- b_archlinux: *requires_nothing
- t_archlinux_soltest: *requires_b_archlinux
# Static build
- b_ubu_static: *workflow_trigger_on_tags
- b_ubu_static: *requires_nothing
# Ubuntu build and tests
- b_ubu: *workflow_trigger_on_tags
- t_ubu_cli: *workflow_ubuntu2204
- t_ubu_locale: *workflow_ubuntu2204
- t_ubu_soltest_all: *workflow_ubuntu2204
- b_ubu_clang: *workflow_trigger_on_tags
- t_ubu_clang_soltest: *workflow_ubuntu2204_clang
- t_ubu_lsp: *workflow_ubuntu2204
- 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: *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: *workflow_trigger_on_tags
- t_ubu_force_release_cli: *workflow_ubuntu2204_force_release
- t_ubu_force_release_soltest_all: *workflow_ubuntu2204_force_release
- 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: *workflow_trigger_on_tags
- t_ems_solcjs: *workflow_emscripten
- t_ems_ext_hardhat: *workflow_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
- 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:
<<: *workflow_trigger_on_tags
<<: *requires_nothing
requires:
- t_ems_compile_ext_colony
- t_native_test_ext_gnosis
@ -1652,32 +1655,32 @@ workflows:
- t_native_test_ext_gp2
# Windows build and tests
- b_win: *workflow_trigger_on_tags
- t_win_soltest: *workflow_win
- b_win: *requires_nothing
- t_win_soltest: *requires_b_win
# Bytecode comparison:
- b_bytecode_ubu_static:
<<: *workflow_trigger_on_tags
<<: *requires_nothing
requires:
- b_ubu_static
- b_bytecode_ubu:
<<: *workflow_trigger_on_tags
<<: *requires_nothing
requires:
- b_ubu
- b_bytecode_win:
<<: *workflow_trigger_on_tags
<<: *requires_nothing
requires:
- b_win
- b_bytecode_osx:
<<: *workflow_trigger_on_tags
<<: *requires_nothing
requires:
- b_osx
- b_bytecode_ems:
<<: *workflow_trigger_on_tags
<<: *requires_nothing
requires:
- b_ems
- t_bytecode_compare:
<<: *workflow_trigger_on_tags
<<: *requires_nothing
requires:
- b_bytecode_ubu_static
- b_bytecode_ubu
@ -1687,7 +1690,7 @@ workflows:
# Final artifacts
- c_release_binaries:
<<: *workflow_trigger_on_releases
<<: *on_version_tags
requires:
- b_ubu_static
- b_osx
@ -1699,32 +1702,29 @@ workflows:
triggers:
- schedule:
cron: "0 0 * * *"
filters:
branches:
only:
- develop
<<: *on_develop
jobs:
# OSSFUZZ builds and (regression) tests
- b_ubu_ossfuzz: *workflow_trigger_on_tags
- t_ubu_ossfuzz: *workflow_ubuntu1604_ossfuzz
- b_ubu_ossfuzz: *requires_nothing
- t_ubu_ossfuzz: *requires_b_ubu_ossfuzz
# Code Coverage enabled build and tests
- b_ubu_codecov: *workflow_trigger_on_tags
- t_ubu_codecov: *workflow_ubuntu2204_codecov
- b_ubu_codecov: *requires_nothing
- t_ubu_codecov: *requires_b_ubu_codecov
# 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
- 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: *workflow_trigger_on_tags
- t_ems_ext: *job_ems_test_ext_colony
- b_ems: *requires_nothing
- t_ext: *job_ems_test_ext_colony

View File

@ -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

View File

@ -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.

View File

@ -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
@ -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

View File

@ -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
@ -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/*

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.
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`.

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:
- 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