@@ -22,7 +22,7 @@ defaults:
22
22
name : Build
23
23
command : |
24
24
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
26
26
echo -n "$CIRCLE_SHA1" > commit_hash.txt
27
27
mkdir -p build
28
28
cd build
@@ -96,22 +96,46 @@ defaults:
96
96
name : soltest
97
97
command : ./.circleci/soltest.sh
98
98
99
+ - run_soltest_all : &run_soltest_all
100
+ name : soltest_all
101
+ command : ./.circleci/soltest_all.sh
102
+
99
103
- run_cmdline_tests : &run_cmdline_tests
100
104
name : command line tests
101
105
command : ./test/cmdlineTests.sh
102
106
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
-
111
107
- test_ubuntu1904 : &test_ubuntu1904
112
108
docker :
113
109
- 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
115
139
116
140
- test_asan : &test_asan
117
141
<< : *test_ubuntu1904
@@ -138,6 +162,16 @@ defaults:
138
162
requires :
139
163
- b_ubu
140
164
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
+
141
175
- workflow_ubuntu1904_codecov : &workflow_ubuntu1904_codecov
142
176
<< : *workflow_trigger_on_tags
143
177
requires :
@@ -163,6 +197,28 @@ defaults:
163
197
requires :
164
198
- b_ubu_ossfuzz
165
199
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
+
166
222
# -----------------------------------------------------------------------------------------------
167
223
jobs :
168
224
@@ -240,6 +296,18 @@ jobs:
240
296
pip install --user z3-solver
241
297
- run : *run_proofs
242
298
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
+
243
311
b_ubu : &build_ubuntu1904
244
312
docker :
245
313
- image : ethereum/solidity-buildpack-deps:ubuntu1904
@@ -249,6 +317,11 @@ jobs:
249
317
- store_artifacts : *artifacts_solc
250
318
- persist_to_workspace : *artifacts_executables
251
319
320
+ b_ubu_release : &build_ubuntu1904_release
321
+ << : *build_ubuntu1904
322
+ environment :
323
+ FORCE_RELEASE : ON
324
+
252
325
b_ubu18 : &build_ubuntu1804
253
326
docker :
254
327
- image : ethereum/solidity-buildpack-deps:ubuntu1804
@@ -292,32 +365,32 @@ jobs:
292
365
command : codecov --flags all --gcov-root build
293
366
- store_artifacts : *artifacts_test_results
294
367
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.
296
369
# Do *NOT* store any artifacts or workspace as we don't run tests on this build.
297
- b_ubu_cxx17 :
370
+ b_ubu_cxx20 :
298
371
<< : *build_ubuntu1904
299
372
environment :
300
373
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
302
375
steps :
303
376
- checkout
304
377
- run : *run_build
305
378
306
379
b_ubu_ossfuzz :
307
- << : *build_ubuntu1904
380
+ << : *build_ubuntu1904_clang
308
381
environment :
309
382
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
313
386
steps :
314
387
- checkout
315
388
- run : *setup_prerelease_commit_hash
316
389
- run : *run_build_ossfuzz
317
390
- persist_to_workspace : *artifacts_executables_ossfuzz
318
391
319
392
t_ubu_ossfuzz : &t_ubu_ossfuzz
320
- << : *test_ubuntu1904
393
+ << : *test_ubuntu1904_clang
321
394
steps :
322
395
- checkout
323
396
- attach_workspace :
@@ -328,6 +401,8 @@ jobs:
328
401
mkdir -p test_results
329
402
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"
330
403
scripts/regressions.py -o test_results
404
+ - run : *gitter_notify_failure
405
+ - run : *gitter_notify_success
331
406
- store_test_results : *store_test_results
332
407
- store_artifacts : *artifacts_test_results
333
408
@@ -445,6 +520,18 @@ jobs:
445
520
path : docs/_build/html/
446
521
destination : docs-html
447
522
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
+
448
535
t_ubu_cli : &t_ubu_cli
449
536
docker :
450
537
- image : ethereum/solidity-buildpack-deps:ubuntu1904
@@ -458,6 +545,9 @@ jobs:
458
545
- store_test_results : *store_test_results
459
546
- store_artifacts : *artifacts_test_results
460
547
548
+ t_ubu_release_cli : &t_ubu_release_cli
549
+ << : *t_ubu_cli
550
+
461
551
t_ubu_asan_cli :
462
552
<< : *t_ubu_cli
463
553
environment :
@@ -478,63 +568,9 @@ jobs:
478
568
environment :
479
569
EVM : constantinople
480
570
OPTIMIZE : 0
571
+ flags : --no-smt
481
572
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
482
573
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
-
538
574
t_ems_solcjs :
539
575
docker :
540
576
- image : circleci/node:10
@@ -564,6 +600,8 @@ jobs:
564
600
name : External GnosisSafe tests
565
601
command : |
566
602
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
567
605
568
606
t_ems_external_zeppelin :
569
607
docker :
@@ -578,6 +616,8 @@ jobs:
578
616
name : External Zeppelin tests
579
617
command : |
580
618
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
581
621
582
622
t_ems_external_colony :
583
623
docker :
@@ -596,6 +636,8 @@ jobs:
596
636
name : External ColonyNetworks tests
597
637
command : |
598
638
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
599
641
600
642
workflows :
601
643
version : 2
@@ -612,26 +654,25 @@ workflows:
612
654
# build-only
613
655
- b_docs : *workflow_trigger_on_tags
614
656
- b_archlinux : *workflow_trigger_on_tags
615
- - b_ubu_cxx17 : *workflow_trigger_on_tags
657
+ - b_ubu_cxx20 : *workflow_trigger_on_tags
616
658
- b_ubu_ossfuzz : *workflow_trigger_on_tags
617
659
618
660
# OS/X build and tests
619
661
- b_osx : *workflow_trigger_on_tags
620
662
- t_osx_cli : *workflow_osx
621
663
622
- # Ubuntu 18.10 build and tests
664
+ # Ubuntu build and tests
623
665
- b_ubu : *workflow_trigger_on_tags
624
666
- b_ubu18 : *workflow_trigger_on_tags
625
667
- 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
635
676
636
677
# ASan build and tests
637
678
- b_ubu_asan : *workflow_trigger_on_tags
@@ -651,6 +692,7 @@ workflows:
651
692
branches :
652
693
only :
653
694
- develop
695
+ - develop_060
654
696
655
697
jobs :
656
698
# Emscripten builds and external tests
0 commit comments