Skip to content

Commit

Permalink
Merge pull request #15437 from ethereum/bump-all-jobs-to-2404
Browse files Browse the repository at this point in the history
Bump all jobs to Ubuntu 24.04 Noble
  • Loading branch information
cameel committed Sep 18, 2024
2 parents db40301 + 5fc7269 commit ba4d768
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 312 deletions.
10 changes: 5 additions & 5 deletions .circleci/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ The docker images are build locally on the developer machine:
```sh
cd .circleci/docker/

docker build -t ethereum/solidity-buildpack-deps:ubuntu2204-<revision> -f Dockerfile.ubuntu2204 .
docker push ethereum/solidity-buildpack-deps:ubuntu2204-<revision>
docker build -t ethereum/solidity-buildpack-deps:ubuntu2404-<revision> -f Dockerfile.ubuntu2404 .
docker push ethereum/solidity-buildpack-deps:ubuntu2404-<revision>
```

The current revisions per docker image are stored in [circle ci pipeline parameters](https://github.com/CircleCI-Public/api-preview-docs/blob/master/docs/pipeline-parameters.md#pipeline-parameters) called `<image-desc>-docker-image-rev` (e.g., `ubuntu-2204-docker-image-rev`). Please update the value assigned to the parameter(s) corresponding to the docker image(s) being updated at the time of the update. Please verify that the value assigned to the parameter matches the revision part of the docker image tag (`<revision>` in the docker build/push snippet shown above). Otherwise, the docker image used by circle ci and the one actually pushed to docker hub will differ.
The current revisions per docker image are stored in [circle ci pipeline parameters](https://github.com/CircleCI-Public/api-preview-docs/blob/master/docs/pipeline-parameters.md#pipeline-parameters) called `<image-desc>-docker-image-rev` (e.g., `ubuntu-2404-docker-image-rev`). Please update the value assigned to the parameter(s) corresponding to the docker image(s) being updated at the time of the update. Please verify that the value assigned to the parameter matches the revision part of the docker image tag (`<revision>` in the docker build/push snippet shown above). Otherwise, the docker image used by circle ci and the one actually pushed to docker hub will differ.

Once the docker image has been built and pushed to Dockerhub, you can find it at:

https://hub.docker.com/r/ethereum/solidity-buildpack-deps:ubuntu2204-<revision>
https://hub.docker.com/r/ethereum/solidity-buildpack-deps:ubuntu2404-<revision>

where the image tag reflects the target OS and revision to build Solidity and run its tests on.

Expand All @@ -24,7 +24,7 @@ where the image tag reflects the target OS and revision to build Solidity and ru
```sh
cd solidity
# Mounts your local solidity directory in docker container for testing
docker run -v `pwd`:/src/solidity -ti ethereum/solidity-buildpack-deps:ubuntu2204-<revision> /bin/bash
docker run -v `pwd`:/src/solidity -ti ethereum/solidity-buildpack-deps:ubuntu2404-<revision> /bin/bash
cd /src/solidity
<commands_to_test_build_with_new_docker_image>
```
132 changes: 37 additions & 95 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,6 @@ parameters:
type: string
# solbuildpackpusher/solidity-buildpack-deps:ubuntu2004-25
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:b3f321fb2d8e7a41ca9328672061c1840e5cd3fb5be503aa158d1c508deacf0a"
ubuntu-2204-docker-image:
type: string
# solbuildpackpusher/solidity-buildpack-deps:ubuntu2204-10
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:ba2d878c26d681a7d6c1922258b47c2e5dd61d0e46ab4c6a4862b473e61997b6"
ubuntu-2204-clang-docker-image:
type: string
# solbuildpackpusher/solidity-buildpack-deps:ubuntu2204.clang-9
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:703cdad5fa5c8686a3080ebb1aea1485ded2446561bf56e2945a87f2fa20a446"
ubuntu-2404-docker-image:
type: string
# solbuildpackpusher/solidity-buildpack-deps:ubuntu2404-1
Expand Down Expand Up @@ -560,56 +552,6 @@ defaults:
MAKEFLAGS: -j 10
CPUs: 10

- base_ubuntu2204: &base_ubuntu2204
docker:
- image: << pipeline.parameters.ubuntu-2204-docker-image >>
environment: &base_ubuntu2204_env
TERM: xterm
MAKEFLAGS: -j 3
CPUs: 3

- base_ubuntu2204_clang: &base_ubuntu2204_clang
docker:
- image: << pipeline.parameters.ubuntu-2204-clang-docker-image >>
environment: &base_ubuntu2204_clang_env
TERM: xterm
CC: clang
CXX: clang++
MAKEFLAGS: -j 3
CPUs: 3

- base_ubuntu2204_clang_large: &base_ubuntu2204_clang_large
<<: *base_ubuntu2204_clang
resource_class: large
environment: &base_ubuntu2204_clang_large_env
<<: *base_ubuntu2204_clang_env
MAKEFLAGS: -j 5
CPUs: 5

- base_ubuntu2204_small: &base_ubuntu2204_small
<<: *base_ubuntu2204
resource_class: small
environment: &base_ubuntu2204_small_env
<<: *base_ubuntu2204_env
MAKEFLAGS: -j 2
CPUs: 2

- base_ubuntu2204_large: &base_ubuntu2204_large
<<: *base_ubuntu2204
resource_class: large
environment: &base_ubuntu2204_large_env
<<: *base_ubuntu2204_env
MAKEFLAGS: -j 5
CPUs: 5

- base_ubuntu2204_xlarge: &base_ubuntu2204_xlarge
<<: *base_ubuntu2204
resource_class: xlarge
environment: &base_ubuntu2204_xlarge_env
<<: *base_ubuntu2204_env
MAKEFLAGS: -j 10
CPUs: 10

- base_ubuntu2404: &base_ubuntu2404
docker:
- image: << pipeline.parameters.ubuntu-2404-docker-image >>
Expand Down Expand Up @@ -973,7 +915,7 @@ jobs:
- matrix_notify_failure_unless_pr

chk_pylint:
<<: *base_ubuntu2204_small
<<: *base_ubuntu2404_small
steps:
- checkout
- run: pylint --version
Expand Down Expand Up @@ -1012,21 +954,21 @@ jobs:
- matrix_notify_failure_unless_pr

chk_proofs:
<<: *base_ubuntu2204_small
<<: *base_ubuntu2404_small
steps:
- checkout
- run_proofs
- matrix_notify_failure_unless_pr

chk_docs_pragma_min_version:
<<: *base_ubuntu2204_small
<<: *base_ubuntu2404_small
steps:
- checkout
- run_docs_pragma_min_version
- matrix_notify_failure_unless_pr

t_ubu_pyscripts:
<<: *base_ubuntu2204_small
<<: *base_ubuntu2404_small
steps:
- checkout
- run:
Expand All @@ -1053,25 +995,25 @@ jobs:
b_ubu: &b_ubu
# this runs 2x faster on xlarge but takes 4x more resources (compared to medium).
# Enough other jobs depend on it that it's worth it though.
<<: *base_ubuntu2204_xlarge
<<: *base_ubuntu2404_xlarge
steps:
- build

# x64 ASAN build, for testing for memory related bugs
b_ubu_asan: &b_ubu_asan
# Runs slightly faster on large and xlarge but we only run it nightly so efficiency matters more.
<<: *base_ubuntu2204
<<: *base_ubuntu2404
environment:
<<: *base_ubuntu2204_env
<<: *base_ubuntu2404_env
CMAKE_OPTIONS: -DSANITIZE=address
CMAKE_BUILD_TYPE: Release
steps:
- build

b_ubu_clang: &b_ubu_clang
<<: *base_ubuntu2204_clang_large
<<: *base_ubuntu2404_clang_large
environment:
<<: *base_ubuntu2204_clang_large_env
<<: *base_ubuntu2404_clang_large_env
MAKEFLAGS: -j 10
steps:
- build
Expand All @@ -1081,17 +1023,17 @@ jobs:
parameters:
cmake_options:
type: string
<<: *base_ubuntu2204_clang
<<: *base_ubuntu2404_clang
environment:
<<: *base_ubuntu2204_clang_env
<<: *base_ubuntu2404_clang_env
CMAKE_OPTIONS: << parameters.cmake_options >>
steps:
- build

b_ubu_force_release: &b_ubu_force_release
<<: *b_ubu
environment:
<<: *base_ubuntu2204_xlarge_env
<<: *base_ubuntu2404_xlarge_env
FORCE_RELEASE: ON

b_ubu_static:
Expand All @@ -1101,7 +1043,7 @@ jobs:
# On large runs 2x faster than on medium. 3x on xlarge.
<<: *base_ubuntu2004_xlarge
environment:
<<: *base_ubuntu2204_xlarge_env
<<: *base_ubuntu2004_xlarge_env
CMAKE_OPTIONS: -DCMAKE_BUILD_TYPE=Release -DUSE_Z3_DLOPEN=ON -DSOLC_STATIC_STDLIBS=ON
steps:
- checkout
Expand All @@ -1121,9 +1063,9 @@ jobs:

b_ubu_codecov:
# Runs ~30% faster on large but we only run it nightly so efficiency matters more.
<<: *base_ubuntu2204
<<: *base_ubuntu2404
environment:
<<: *base_ubuntu2204_env
<<: *base_ubuntu2404_env
COVERAGE: ON
CMAKE_BUILD_TYPE: Debug
steps:
Expand All @@ -1133,9 +1075,9 @@ jobs:
- matrix_notify_failure_unless_pr

t_ubu_codecov:
<<: *base_ubuntu2204_large
<<: *base_ubuntu2404_large
environment:
<<: *base_ubuntu2204_large_env
<<: *base_ubuntu2404_large_env
EVM: << pipeline.parameters.evm-version >>
OPTIMIZE: 1
steps:
Expand All @@ -1158,9 +1100,9 @@ jobs:
# Builds in C++20 mode and uses debug build in order to speed up.
# Do *NOT* store any artifacts or workspace as we don't run tests on this build.
b_ubu_cxx20:
<<: *base_ubuntu2204_large
<<: *base_ubuntu2404_large
environment:
<<: *base_ubuntu2204_large_env
<<: *base_ubuntu2404_large_env
CMAKE_BUILD_TYPE: Debug
CMAKE_OPTIONS: -DCMAKE_CXX_STANDARD=20
MAKEFLAGS: -j 10
Expand Down Expand Up @@ -1280,7 +1222,7 @@ jobs:
- matrix_notify_failure_unless_pr

b_docs:
<<: *base_ubuntu2204_small
<<: *base_ubuntu2404_small
steps:
- checkout
- setup_prerelease_commit_hash
Expand All @@ -1299,7 +1241,7 @@ jobs:
- soltest_all

t_ubu_soltest_deprecated_evm_versions: &t_ubu_soltest_deprecated_evm_versions
<<: *base_ubuntu2204_large
<<: *base_ubuntu2404_large
parallelism: 50
steps:
- checkout
Expand All @@ -1313,7 +1255,7 @@ jobs:
- matrix_notify_failure_unless_pr

t_ubu_lsp: &t_ubu_lsp
<<: *base_ubuntu2204_small
<<: *base_ubuntu2404_small
steps:
- test_lsp

Expand Down Expand Up @@ -1362,7 +1304,7 @@ jobs:
<<: *t_ubu_cli

t_ubu_locale:
<<: *base_ubuntu2204_small
<<: *base_ubuntu2404_small
steps:
- checkout
- attach_workspace:
Expand All @@ -1372,10 +1314,10 @@ jobs:

t_ubu_asan_cli:
# Runs slightly faster on medium but we only run it nightly so efficiency matters more.
<<: *base_ubuntu2204
<<: *base_ubuntu2404
parallelism: 8 # Should match number of tests in .circleci/parallel_cli_tests.py
environment:
<<: *base_ubuntu2204_env
<<: *base_ubuntu2404_env
ASAN_OPTIONS: check_initialization_order=true:detect_stack_use_after_return=true:strict_init_order=true:strict_string_checks=true:detect_invalid_pointer_pairs=2
# Suppress CLN memory leak.
# See: https://github.com/ethereum/solidity/issues/13891 for details.
Expand All @@ -1384,10 +1326,10 @@ jobs:
- cmdline_tests

t_ubu_asan_soltest:
<<: *base_ubuntu2204
<<: *base_ubuntu2404
parallelism: 20
environment:
<<: *base_ubuntu2204_env
<<: *base_ubuntu2404_env
EVM: << pipeline.parameters.evm-version >>
OPTIMIZE: 0
SOLTEST_FLAGS: --no-smt
Expand All @@ -1399,10 +1341,10 @@ jobs:
- soltest

t_ubu_asan_clang_soltest:
<<: *base_ubuntu2204_clang
<<: *base_ubuntu2404_clang
parallelism: 20
environment:
<<: *base_ubuntu2204_clang_env
<<: *base_ubuntu2404_clang_env
EVM: << pipeline.parameters.evm-version >>
OPTIMIZE: 0
SOLTEST_FLAGS: --no-smt
Expand All @@ -1411,24 +1353,24 @@ jobs:
- soltest

t_ubu_ubsan_clang_soltest:
<<: *base_ubuntu2204_clang
<<: *base_ubuntu2404_clang
parallelism: 20
environment:
<<: *base_ubuntu2204_clang_env
<<: *base_ubuntu2404_clang_env
EVM: << pipeline.parameters.evm-version >>
SOLTEST_FLAGS: --no-smt
steps:
- soltest

t_ubu_ubsan_clang_cli:
<<: *base_ubuntu2204_clang
<<: *base_ubuntu2404_clang
parallelism: 8 # Should match number of tests in .circleci/parallel_cli_tests.py
steps:
- cmdline_tests

t_ems_solcjs:
# Unlike other t_ems jobs this one actually runs 2x faster on medium (compared to small).
<<: *base_ubuntu2204
<<: *base_ubuntu2404
steps:
- checkout
- attach_workspace:
Expand Down Expand Up @@ -1747,7 +1689,7 @@ jobs:
parameters:
preset:
type: string
<<: *base_ubuntu2204_small
<<: *base_ubuntu2404_small
parallelism: 2 # For prepare_bytecode_report
steps:
- checkout
Expand Down Expand Up @@ -1832,9 +1774,9 @@ jobs:
preset: "<< parameters.preset >>"

t_bytecode_compare:
<<: *base_ubuntu2204_small
<<: *base_ubuntu2404_small
environment:
<<: *base_ubuntu2204_small_env
<<: *base_ubuntu2404_small_env
<<: *bytecode_compare_env_presets
steps:
- checkout
Expand All @@ -1848,7 +1790,7 @@ jobs:
- matrix_notify_failure_unless_pr

c_release_binaries:
<<: *base_ubuntu2204
<<: *base_ubuntu2404
steps:
- checkout
- attach_workspace:
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/buildpack-deps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ on:
- 'scripts/docker/buildpack-deps/Dockerfile.emscripten'
- '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'
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2404'
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2404.clang'

Expand All @@ -25,7 +23,7 @@ jobs:
strategy:
fail-fast: false
matrix:
image_variant: [emscripten, ubuntu.clang.ossfuzz, ubuntu2004, ubuntu2204.clang, ubuntu2204, ubuntu2404, ubuntu2404.clang]
image_variant: [emscripten, ubuntu.clang.ossfuzz, ubuntu2004, ubuntu2404, ubuntu2404.clang]

steps:
- uses: actions/checkout@v4
Expand Down
5 changes: 4 additions & 1 deletion docs/docs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,8 @@ set -euo pipefail
script_dir="$(dirname "$0")"

cd "${script_dir}"
pip3 install -r requirements.txt --upgrade --upgrade-strategy eager
# TODO `--ignore-installed` now fixes an issue where pip tries to uninstall a Debian installed package, but is unable to
# TODO since Debian has decided to not use the RECORD file, which then breaks pip.
# TODO https://github.com/pypa/pip/issues/11631 and https://bugs.launchpad.net/ubuntu/+source/wheel/+bug/2063151
pip3 install -r requirements.txt --ignore-installed --upgrade --upgrade-strategy eager
sphinx-build -nW -b html -d _build/doctrees . _build/html
1 change: 0 additions & 1 deletion scripts/ci/buildpack-deps_test_ubuntu1804.sh

This file was deleted.

1 change: 0 additions & 1 deletion scripts/ci/buildpack-deps_test_ubuntu2204.clang.sh

This file was deleted.

Loading

0 comments on commit ba4d768

Please sign in to comment.