Skip to content

Commit 7709ece

Browse files
authored
Merge pull request #7497 from ethereum/develop
Merge develop into release for 0.5.12
2 parents 22be859 + 641c06d commit 7709ece

File tree

418 files changed

+9116
-2600
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

418 files changed

+9116
-2600
lines changed

.circleci/README.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,22 @@ The docker images are build locally on the developer machine:
77
```!sh
88
cd .circleci/docker/
99
10-
docker build -t ethereum/solc-buildpack-deps:ubuntu1904 -f Dockerfile.ubuntu1904 .
11-
docker push solidity/solc-buildpack-deps:ubuntu1904
10+
docker build -t ethereum/solidity-buildpack-deps:ubuntu1904 -f Dockerfile.ubuntu1904 .
11+
docker push ethereum/solidity-buildpack-deps:ubuntu1904
1212
```
1313

1414
which you can find on Dockerhub after the push at:
1515

1616
https://hub.docker.com/r/ethereum/solidity-buildpack-deps
1717

1818
where the image tag reflects the target OS to build Solidity and run its test on.
19+
20+
### Testing docker images locally
21+
22+
```!sh
23+
cd solidity
24+
# Mounts your local solidity directory in docker container for testing
25+
docker run -v `pwd`:/src/solidity -ti ethereum/solidity-buildpack-deps:ubuntu1904 /bin/bash
26+
cd /src/solidity
27+
<commands_to_test_build_with_new_docker_image>
28+
```

.circleci/config.yml

Lines changed: 126 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ defaults:
2222
name: Build
2323
command: |
2424
set -ex
25-
if [ "$CIRCLE_BRANCH" = release -o -n "$CIRCLE_TAG" ]; then echo -n > prerelease.txt; else date -u +"nightly.%Y.%-m.%-d" > prerelease.txt; fi
25+
if [ "$CIRCLE_BRANCH" = release -o -n "$CIRCLE_TAG" -o -n "$FORCE_RELEASE" ]; then echo -n > prerelease.txt; else date -u +"nightly.%Y.%-m.%-d" > prerelease.txt; fi
2626
echo -n "$CIRCLE_SHA1" > commit_hash.txt
2727
mkdir -p build
2828
cd build
@@ -96,22 +96,46 @@ defaults:
9696
name: soltest
9797
command: ./.circleci/soltest.sh
9898

99+
- run_soltest_all: &run_soltest_all
100+
name: soltest_all
101+
command: ./.circleci/soltest_all.sh
102+
99103
- run_cmdline_tests: &run_cmdline_tests
100104
name: command line tests
101105
command: ./test/cmdlineTests.sh
102106

103-
- test_steps: &test_steps
104-
- checkout
105-
- attach_workspace:
106-
at: build
107-
- run: *run_soltest
108-
- store_test_results: *store_test_results
109-
- store_artifacts: *artifacts_test_results
110-
111107
- test_ubuntu1904: &test_ubuntu1904
112108
docker:
113109
- image: ethereum/solidity-buildpack-deps:ubuntu1904
114-
steps: *test_steps
110+
steps:
111+
- checkout
112+
- attach_workspace:
113+
at: build
114+
- run: *run_soltest
115+
- store_test_results: *store_test_results
116+
- store_artifacts: *artifacts_test_results
117+
118+
- test_ubuntu1904_clang: &test_ubuntu1904_clang
119+
docker:
120+
- image: ethereum/solidity-buildpack-deps:ubuntu1904-clang
121+
steps:
122+
- checkout
123+
- attach_workspace:
124+
at: build
125+
- run: *run_soltest
126+
- store_test_results: *store_test_results
127+
- store_artifacts: *artifacts_test_results
128+
129+
- test_ubuntu1904_all: &test_ubuntu1904
130+
docker:
131+
- image: ethereum/solidity-buildpack-deps:ubuntu1904
132+
steps:
133+
- checkout
134+
- attach_workspace:
135+
at: build
136+
- run: *run_soltest_all
137+
- store_test_results: *store_test_results
138+
- store_artifacts: *artifacts_test_results
115139

116140
- test_asan: &test_asan
117141
<<: *test_ubuntu1904
@@ -138,6 +162,16 @@ defaults:
138162
requires:
139163
- b_ubu
140164

165+
- workflow_ubuntu1904_clang: &workflow_ubuntu1904_clang
166+
<<: *workflow_trigger_on_tags
167+
requires:
168+
- b_ubu_clang
169+
170+
- workflow_ubuntu1904_release: &workflow_ubuntu1904_release
171+
<<: *workflow_trigger_on_tags
172+
requires:
173+
- b_ubu_release
174+
141175
- workflow_ubuntu1904_codecov: &workflow_ubuntu1904_codecov
142176
<<: *workflow_trigger_on_tags
143177
requires:
@@ -163,6 +197,28 @@ defaults:
163197
requires:
164198
- b_ubu_ossfuzz
165199

200+
# --------------------------------------------------------------------------
201+
# Notification Templates
202+
- gitter_notify_failure: &gitter_notify_failure
203+
name: Gitter notify failure
204+
command: >-
205+
curl -X POST -i
206+
-i -H "Content-Type: application/json"
207+
-H "Accept: application/json"
208+
-H "Authorization: Bearer $GITTER_API_TOKEN" "https://api.gitter.im/v1/rooms/$GITTER_NOTIFY_ROOM_ID/chatMessages"
209+
-d '{"text":" ❌ Nightly job **'$CIRCLE_JOB'** failed on **'$CIRCLE_BRANCH'**. Please see '$CIRCLE_BUILD_URL' for details."}'
210+
when: on_fail
211+
212+
- gitter_notify_success: &gitter_notify_success
213+
name: Gitter notify success
214+
command: >-
215+
curl -X POST -i
216+
-i -H "Content-Type: application/json"
217+
-H "Accept: application/json"
218+
-H "Authorization: Bearer $GITTER_API_TOKEN" "https://api.gitter.im/v1/rooms/$GITTER_NOTIFY_ROOM_ID/chatMessages"
219+
-d '{"text":" ✅ Nightly job **'$CIRCLE_JOB'** succeeded on **'$CIRCLE_BRANCH'**. Please see '$CIRCLE_BUILD_URL' for details."}'
220+
when: on_success
221+
166222
# -----------------------------------------------------------------------------------------------
167223
jobs:
168224

@@ -240,6 +296,18 @@ jobs:
240296
pip install --user z3-solver
241297
- run: *run_proofs
242298

299+
b_ubu_clang: &build_ubuntu1904_clang
300+
docker:
301+
- image: ethereum/solidity-buildpack-deps:ubuntu1904-clang
302+
environment:
303+
CC: clang
304+
CXX: clang++
305+
steps:
306+
- checkout
307+
- run: *run_build
308+
- store_artifacts: *artifacts_solc
309+
- persist_to_workspace: *artifacts_executables
310+
243311
b_ubu: &build_ubuntu1904
244312
docker:
245313
- image: ethereum/solidity-buildpack-deps:ubuntu1904
@@ -249,6 +317,11 @@ jobs:
249317
- store_artifacts: *artifacts_solc
250318
- persist_to_workspace: *artifacts_executables
251319

320+
b_ubu_release: &build_ubuntu1904_release
321+
<<: *build_ubuntu1904
322+
environment:
323+
FORCE_RELEASE: ON
324+
252325
b_ubu18: &build_ubuntu1804
253326
docker:
254327
- image: ethereum/solidity-buildpack-deps:ubuntu1804
@@ -292,32 +365,32 @@ jobs:
292365
command: codecov --flags all --gcov-root build
293366
- store_artifacts: *artifacts_test_results
294367

295-
# Builds in C++17 mode and uses debug build in order to speed up.
368+
# Builds in C++20 mode and uses debug build in order to speed up.
296369
# Do *NOT* store any artifacts or workspace as we don't run tests on this build.
297-
b_ubu_cxx17:
370+
b_ubu_cxx20:
298371
<<: *build_ubuntu1904
299372
environment:
300373
CMAKE_BUILD_TYPE: Debug
301-
CMAKE_OPTIONS: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/cxx17.cmake -DUSE_CVC4=OFF
374+
CMAKE_OPTIONS: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/cxx20.cmake -DUSE_CVC4=OFF
302375
steps:
303376
- checkout
304377
- run: *run_build
305378

306379
b_ubu_ossfuzz:
307-
<<: *build_ubuntu1904
380+
<<: *build_ubuntu1904_clang
308381
environment:
309382
TERM: xterm
310-
CC: /usr/bin/clang-8
311-
CXX: /usr/bin/clang++-8
312-
CMAKE_OPTIONS: -DOSSFUZZ=1 -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/libfuzzer.cmake
383+
CC: clang
384+
CXX: clang++
385+
CMAKE_OPTIONS: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/libfuzzer.cmake
313386
steps:
314387
- checkout
315388
- run: *setup_prerelease_commit_hash
316389
- run: *run_build_ossfuzz
317390
- persist_to_workspace: *artifacts_executables_ossfuzz
318391

319392
t_ubu_ossfuzz: &t_ubu_ossfuzz
320-
<<: *test_ubuntu1904
393+
<<: *test_ubuntu1904_clang
321394
steps:
322395
- checkout
323396
- attach_workspace:
@@ -328,6 +401,8 @@ jobs:
328401
mkdir -p test_results
329402
export 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"
330403
scripts/regressions.py -o test_results
404+
- run: *gitter_notify_failure
405+
- run: *gitter_notify_success
331406
- store_test_results: *store_test_results
332407
- store_artifacts: *artifacts_test_results
333408

@@ -445,6 +520,18 @@ jobs:
445520
path: docs/_build/html/
446521
destination: docs-html
447522

523+
t_ubu_soltest: &t_ubu_soltest
524+
<<: *test_ubuntu1904
525+
526+
t_ubu_clang_soltest: &t_ubu_clang_soltest
527+
<<: *test_ubuntu1904_clang
528+
environment:
529+
EVM: constantinople
530+
OPTIMIZE: 0
531+
532+
t_ubu_release_soltest: &t_ubu_release_soltest
533+
<<: *t_ubu_soltest
534+
448535
t_ubu_cli: &t_ubu_cli
449536
docker:
450537
- image: ethereum/solidity-buildpack-deps:ubuntu1904
@@ -458,6 +545,9 @@ jobs:
458545
- store_test_results: *store_test_results
459546
- store_artifacts: *artifacts_test_results
460547

548+
t_ubu_release_cli: &t_ubu_release_cli
549+
<<: *t_ubu_cli
550+
461551
t_ubu_asan_cli:
462552
<<: *t_ubu_cli
463553
environment:
@@ -478,63 +568,9 @@ jobs:
478568
environment:
479569
EVM: constantinople
480570
OPTIMIZE: 0
571+
flags: --no-smt
481572
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
482573

483-
t_ubu_homestead:
484-
<<: *test_ubuntu1904
485-
environment:
486-
EVM: homestead
487-
OPTIMIZE: 0
488-
489-
t_ubu_homestead_opt:
490-
<<: *test_ubuntu1904
491-
environment:
492-
EVM: homestead
493-
OPTIMIZE: 1
494-
495-
t_ubu_byzantium:
496-
<<: *test_ubuntu1904
497-
environment:
498-
EVM: byzantium
499-
OPTIMIZE: 0
500-
501-
t_ubu_byzantium_opt:
502-
<<: *test_ubuntu1904
503-
environment:
504-
EVM: byzantium
505-
OPTIMIZE: 1
506-
507-
t_ubu_constantinople:
508-
<<: *test_ubuntu1904
509-
environment:
510-
EVM: constantinople
511-
OPTIMIZE: 0
512-
513-
t_ubu_constantinople_opt:
514-
<<: *test_ubuntu1904
515-
environment:
516-
EVM: constantinople
517-
OPTIMIZE: 1
518-
519-
t_ubu_constantinople_opt_abiv2:
520-
<<: *test_ubuntu1904
521-
environment:
522-
EVM: constantinople
523-
OPTIMIZE: 1
524-
ABI_ENCODER_V2: 1
525-
526-
t_ubu_petersburg:
527-
<<: *test_ubuntu1904
528-
environment:
529-
EVM: petersburg
530-
OPTIMIZE: 0
531-
532-
t_ubu_petersburg_opt:
533-
<<: *test_ubuntu1904
534-
environment:
535-
EVM: petersburg
536-
OPTIMIZE: 1
537-
538574
t_ems_solcjs:
539575
docker:
540576
- image: circleci/node:10
@@ -564,6 +600,8 @@ jobs:
564600
name: External GnosisSafe tests
565601
command: |
566602
test/externalTests/gnosis.sh /tmp/workspace/soljson.js || test/externalTests/gnosis.sh /tmp/workspace/soljson.js
603+
- run: *gitter_notify_failure
604+
- run: *gitter_notify_success
567605

568606
t_ems_external_zeppelin:
569607
docker:
@@ -578,6 +616,8 @@ jobs:
578616
name: External Zeppelin tests
579617
command: |
580618
test/externalTests/zeppelin.sh /tmp/workspace/soljson.js || test/externalTests/zeppelin.sh /tmp/workspace/soljson.js
619+
- run: *gitter_notify_failure
620+
- run: *gitter_notify_success
581621

582622
t_ems_external_colony:
583623
docker:
@@ -596,6 +636,8 @@ jobs:
596636
name: External ColonyNetworks tests
597637
command: |
598638
test/externalTests/colony.sh /tmp/workspace/soljson.js || test/externalTests/colony.sh /tmp/workspace/soljson.js
639+
- run: *gitter_notify_failure
640+
- run: *gitter_notify_success
599641

600642
workflows:
601643
version: 2
@@ -612,26 +654,25 @@ workflows:
612654
# build-only
613655
- b_docs: *workflow_trigger_on_tags
614656
- b_archlinux: *workflow_trigger_on_tags
615-
- b_ubu_cxx17: *workflow_trigger_on_tags
657+
- b_ubu_cxx20: *workflow_trigger_on_tags
616658
- b_ubu_ossfuzz: *workflow_trigger_on_tags
617659

618660
# OS/X build and tests
619661
- b_osx: *workflow_trigger_on_tags
620662
- t_osx_cli: *workflow_osx
621663

622-
# Ubuntu 18.10 build and tests
664+
# Ubuntu build and tests
623665
- b_ubu: *workflow_trigger_on_tags
624666
- b_ubu18: *workflow_trigger_on_tags
625667
- t_ubu_cli: *workflow_ubuntu1904
626-
- t_ubu_homestead: *workflow_ubuntu1904
627-
- t_ubu_homestead_opt: *workflow_ubuntu1904
628-
- t_ubu_byzantium: *workflow_ubuntu1904
629-
- t_ubu_byzantium_opt: *workflow_ubuntu1904
630-
- t_ubu_constantinople: *workflow_ubuntu1904
631-
- t_ubu_constantinople_opt: *workflow_ubuntu1904
632-
- t_ubu_constantinople_opt_abiv2: *workflow_ubuntu1904
633-
- t_ubu_petersburg: *workflow_ubuntu1904
634-
- t_ubu_petersburg_opt: *workflow_ubuntu1904
668+
- t_ubu_soltest: *workflow_ubuntu1904
669+
- b_ubu_clang: *workflow_trigger_on_tags
670+
- t_ubu_clang_soltest: *workflow_ubuntu1904_clang
671+
672+
# Ubuntu fake release build and tests
673+
- b_ubu_release: *workflow_trigger_on_tags
674+
- t_ubu_release_cli: *workflow_ubuntu1904_release
675+
- t_ubu_release_soltest: *workflow_ubuntu1904_release
635676

636677
# ASan build and tests
637678
- b_ubu_asan: *workflow_trigger_on_tags
@@ -651,6 +692,7 @@ workflows:
651692
branches:
652693
only:
653694
- develop
695+
- develop_060
654696

655697
jobs:
656698
# Emscripten builds and external tests

0 commit comments

Comments
 (0)