Skip to content

Commit

Permalink
Merge pull request #8936 from ethereum/develop
Browse files Browse the repository at this point in the history
Merge develop into release for 0.6.8.
  • Loading branch information
chriseth authored May 14, 2020
2 parents b8d736a + f83ef23 commit 0bbfe45
Show file tree
Hide file tree
Showing 637 changed files with 7,009 additions and 1,606 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:ubuntu1904-<revision> -f Dockerfile.ubuntu1904 .
docker push ethereum/solidity-buildpack-deps:ubuntu1904-<revision>
docker build -t ethereum/solidity-buildpack-deps:ubuntu2004-<revision> -f Dockerfile.ubuntu2004 .
docker push ethereum/solidity-buildpack-deps:ubuntu2004-<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-1904-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-2004-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:ubuntu1904-<revision>
https://hub.docker.com/r/ethereum/solidity-buildpack-deps:ubuntu2004-<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:ubuntu1904-<revision> /bin/bash
docker run -v `pwd`:/src/solidity -ti ethereum/solidity-buildpack-deps:ubuntu2004-<revision> /bin/bash
cd /src/solidity
<commands_to_test_build_with_new_docker_image>
```
94 changes: 57 additions & 37 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ parameters:
ubuntu-1804-docker-image-rev:
type: string
default: "4"
ubuntu-1904-docker-image-rev:
ubuntu-2004-docker-image-rev:
type: string
default: "4"
ubuntu-1904-clang-docker-image-rev:
default: "1"
ubuntu-2004-clang-docker-image-rev:
type: string
default: "5"
default: "1"
ubuntu-1604-clang-ossfuzz-docker-image-rev:
type: string
default: "2"
Expand Down Expand Up @@ -50,6 +50,7 @@ defaults:
cd build
protoc --proto_path=../test/tools/ossfuzz yulProto.proto --cpp_out=../test/tools/ossfuzz
protoc --proto_path=../test/tools/ossfuzz abiV2Proto.proto --cpp_out=../test/tools/ossfuzz
protoc --proto_path=../test/tools/ossfuzz solProto.proto --cpp_out=../test/tools/ossfuzz
cmake .. -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE:-Release} $CMAKE_OPTIONS
make ossfuzz ossfuzz_proto ossfuzz_abiv2 -j4
Expand Down Expand Up @@ -97,6 +98,7 @@ defaults:
- test/tools/ossfuzz/strictasm_opt_ossfuzz
- test/tools/ossfuzz/yul_proto_diff_ossfuzz
- test/tools/ossfuzz/yul_proto_ossfuzz
- test/tools/ossfuzz/sol_proto_ossfuzz

# test result output directory
- artifacts_test_results: &artifacts_test_results
Expand Down Expand Up @@ -137,9 +139,9 @@ defaults:
- store_test_results: *store_test_results
- store_artifacts: *artifacts_test_results

- test_ubuntu1904_clang: &test_ubuntu1904_clang
- test_ubuntu2004_clang: &test_ubuntu2004_clang
docker:
- image: ethereum/solidity-buildpack-deps:ubuntu1904-clang-<< pipeline.parameters.ubuntu-1904-clang-docker-image-rev >>
- image: ethereum/solidity-buildpack-deps:ubuntu2004-clang-<< pipeline.parameters.ubuntu-2004-clang-docker-image-rev >>
steps:
- checkout
- attach_workspace:
Expand All @@ -148,9 +150,9 @@ defaults:
- store_test_results: *store_test_results
- store_artifacts: *artifacts_test_results

- test_ubuntu1904: &test_ubuntu1904
- test_ubuntu2004: &test_ubuntu2004
docker:
- image: ethereum/solidity-buildpack-deps:ubuntu1904-<< pipeline.parameters.ubuntu-1904-docker-image-rev >>
- image: ethereum/solidity-buildpack-deps:ubuntu2004-<< pipeline.parameters.ubuntu-2004-docker-image-rev >>
steps:
- checkout
- attach_workspace:
Expand All @@ -160,7 +162,7 @@ defaults:
- store_artifacts: *artifacts_test_results

- test_asan: &test_asan
<<: *test_ubuntu1904
<<: *test_ubuntu2004
steps:
- checkout
- attach_workspace:
Expand All @@ -179,7 +181,7 @@ defaults:
tags:
only: /.*/

- workflow_ubuntu1904: &workflow_ubuntu1904
- workflow_ubuntu2004: &workflow_ubuntu2004
<<: *workflow_trigger_on_tags
requires:
- b_ubu
Expand All @@ -189,17 +191,17 @@ defaults:
requires:
- b_ubu_ossfuzz

- workflow_ubuntu1904_clang: &workflow_ubuntu1904_clang
- workflow_ubuntu2004_clang: &workflow_ubuntu2004_clang
<<: *workflow_trigger_on_tags
requires:
- b_ubu_clang

- workflow_ubuntu1904_release: &workflow_ubuntu1904_release
- workflow_ubuntu2004_release: &workflow_ubuntu2004_release
<<: *workflow_trigger_on_tags
requires:
- b_ubu_release

- workflow_ubuntu1904_codecov: &workflow_ubuntu1904_codecov
- workflow_ubuntu2004_codecov: &workflow_ubuntu2004_codecov
<<: *workflow_trigger_on_tags
requires:
- b_ubu_codecov
Expand All @@ -209,7 +211,7 @@ defaults:
requires:
- b_osx

- workflow_ubuntu1904_asan: &workflow_ubuntu1904_asan
- workflow_ubuntu2004_asan: &workflow_ubuntu2004_asan
<<: *workflow_trigger_on_tags
requires:
- b_ubu_asan
Expand Down Expand Up @@ -359,16 +361,16 @@ jobs:

chk_docs_pragma_min_version:
docker:
- image: ethereum/solidity-buildpack-deps:ubuntu1904-<< pipeline.parameters.ubuntu-1904-docker-image-rev >>
- image: ethereum/solidity-buildpack-deps:ubuntu2004-<< pipeline.parameters.ubuntu-2004-docker-image-rev >>
environment:
TERM: xterm
steps:
- checkout
- run: *run_docs_pragma_min_version

b_ubu_clang: &build_ubuntu1904_clang
b_ubu_clang: &build_ubuntu2004_clang
docker:
- image: ethereum/solidity-buildpack-deps:ubuntu1904-clang-<< pipeline.parameters.ubuntu-1904-clang-docker-image-rev >>
- image: ethereum/solidity-buildpack-deps:ubuntu2004-clang-<< pipeline.parameters.ubuntu-2004-clang-docker-image-rev >>
environment:
CC: clang
CXX: clang++
Expand All @@ -378,18 +380,18 @@ jobs:
- store_artifacts: *artifacts_solc
- persist_to_workspace: *artifacts_executables

b_ubu: &build_ubuntu1904
b_ubu: &build_ubuntu2004
docker:
- image: ethereum/solidity-buildpack-deps:ubuntu1904-<< pipeline.parameters.ubuntu-1904-docker-image-rev >>
- image: ethereum/solidity-buildpack-deps:ubuntu2004-<< pipeline.parameters.ubuntu-2004-docker-image-rev >>
steps:
- checkout
- run: *run_build
- store_artifacts: *artifacts_solc
- store_artifacts: *artifacts_tools
- persist_to_workspace: *artifacts_executables

b_ubu_release: &build_ubuntu1904_release
<<: *build_ubuntu1904
b_ubu_release: &build_ubuntu2004_release
<<: *build_ubuntu2004
environment:
FORCE_RELEASE: ON

Expand All @@ -406,7 +408,7 @@ jobs:
- persist_to_workspace: *artifacts_executables

b_ubu_codecov:
<<: *build_ubuntu1904
<<: *build_ubuntu2004
environment:
COVERAGE: ON
CMAKE_BUILD_TYPE: Debug
Expand All @@ -416,7 +418,7 @@ jobs:
- persist_to_workspace: *artifacts_build_dir

t_ubu_codecov:
<<: *test_ubuntu1904
<<: *test_ubuntu2004
environment:
EVM: constantinople
OPTIMIZE: 1
Expand All @@ -439,7 +441,7 @@ 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:
<<: *build_ubuntu1904
<<: *build_ubuntu2004
environment:
CMAKE_BUILD_TYPE: Debug
CMAKE_OPTIONS: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/cxx20.cmake -DUSE_CVC4=OFF
Expand Down Expand Up @@ -591,7 +593,7 @@ jobs:

# x64 ASAN build, for testing for memory related bugs
b_ubu_asan: &b_ubu_asan
<<: *build_ubuntu1904
<<: *build_ubuntu2004
environment:
CMAKE_OPTIONS: -DSANITIZE=address
CMAKE_BUILD_TYPE: Release
Expand All @@ -603,7 +605,7 @@ jobs:

b_docs:
docker:
- image: ethereum/solidity-buildpack-deps:ubuntu1904-<< pipeline.parameters.ubuntu-1904-docker-image-rev >>
- image: ethereum/solidity-buildpack-deps:ubuntu2004-<< pipeline.parameters.ubuntu-2004-docker-image-rev >>
steps:
- checkout
- run: *setup_prerelease_commit_hash
Expand All @@ -615,10 +617,27 @@ jobs:
destination: docs-html

t_ubu_soltest: &t_ubu_soltest
<<: *test_ubuntu1904
<<: *test_ubuntu2004

t_ubu_soltest_enforce_yul: &t_ubu_soltest_enforce_yul
docker:
- image: ethereum/solidity-buildpack-deps:ubuntu2004-<< pipeline.parameters.ubuntu-2004-docker-image-rev >>
environment:
EVM: constantinople
SOLTEST_FLAGS: --enforce-via-yul
OPTIMIZE: 0
TERM: xterm
steps:
- checkout
- attach_workspace:
at: build
- run: *run_soltest
- store_test_results: *store_test_results
- store_artifacts: *artifacts_test_results


t_ubu_clang_soltest: &t_ubu_clang_soltest
<<: *test_ubuntu1904_clang
<<: *test_ubuntu2004_clang
environment:
EVM: constantinople
OPTIMIZE: 0
Expand All @@ -628,7 +647,7 @@ jobs:

t_ubu_cli: &t_ubu_cli
docker:
- image: ethereum/solidity-buildpack-deps:ubuntu1904-<< pipeline.parameters.ubuntu-1904-docker-image-rev >>
- image: ethereum/solidity-buildpack-deps:ubuntu2004-<< pipeline.parameters.ubuntu-2004-docker-image-rev >>
environment:
TERM: xterm
steps:
Expand Down Expand Up @@ -816,20 +835,21 @@ workflows:
# Ubuntu build and tests
- b_ubu: *workflow_trigger_on_tags
- b_ubu18: *workflow_trigger_on_tags
- t_ubu_cli: *workflow_ubuntu1904
- t_ubu_soltest: *workflow_ubuntu1904
- t_ubu_cli: *workflow_ubuntu2004
- t_ubu_soltest: *workflow_ubuntu2004
- t_ubu_soltest_enforce_yul: *workflow_ubuntu2004
- b_ubu_clang: *workflow_trigger_on_tags
- t_ubu_clang_soltest: *workflow_ubuntu1904_clang
- t_ubu_clang_soltest: *workflow_ubuntu2004_clang

# Ubuntu fake release build and tests
- b_ubu_release: *workflow_trigger_on_tags
- t_ubu_release_cli: *workflow_ubuntu1904_release
- t_ubu_release_soltest: *workflow_ubuntu1904_release
- t_ubu_release_cli: *workflow_ubuntu2004_release
- t_ubu_release_soltest: *workflow_ubuntu2004_release

# ASan build and tests
- b_ubu_asan: *workflow_trigger_on_tags
- t_ubu_asan_constantinople: *workflow_ubuntu1904_asan
- t_ubu_asan_cli: *workflow_ubuntu1904_asan
- t_ubu_asan_constantinople: *workflow_ubuntu2004_asan
- t_ubu_asan_cli: *workflow_ubuntu2004_asan

# Emscripten build and selected tests
- b_ems: *workflow_trigger_on_tags
Expand All @@ -856,4 +876,4 @@ workflows:

# Code Coverage enabled build and tests
- b_ubu_codecov: *workflow_trigger_on_tags
- t_ubu_codecov: *workflow_ubuntu1904_codecov
- t_ubu_codecov: *workflow_ubuntu2004_codecov
Loading

0 comments on commit 0bbfe45

Please sign in to comment.