Skip to content

Commit f18bedf

Browse files
authored
Merge pull request #64 from tronprotocol/master_0.8.x
func(ci): restore ubuntu 2004 pipeline
2 parents 923d6c5 + 7cfa6e9 commit f18bedf

File tree

2 files changed

+171
-43
lines changed

2 files changed

+171
-43
lines changed

.circleci/config.yml

Lines changed: 96 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
# - ems: Emscripten
88
version: 2.1
99
parameters:
10+
ubuntu-2004-docker-image:
11+
type: string
12+
# solbuildpackpusher/solidity-buildpack-deps:ubuntu2004-16
13+
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:ee1def5806f40c35d583234e172ec5769bb9a08b6f5bbc713c1a2658846dbced"
1014
ubuntu-2204-docker-image:
1115
type: string
1216
# solbuildpackpusher/solidity-buildpack-deps:ubuntu2204-1
@@ -97,11 +101,13 @@ commands:
97101
parameters:
98102
label:
99103
type: string
104+
binary_path:
105+
type: string
100106
steps:
101107
- run: mkdir test-cases/
102-
- run: cd test-cases && ../scripts/isolate_tests.py ../test/
103-
- run: cd test-cases && ../scripts/bytecodecompare/prepare_report.py ../build/solc/solc --interface standard-json --report-file "../bytecode-report-<< parameters.label >>-json.txt"
104-
- run: cd test-cases && ../scripts/bytecodecompare/prepare_report.py ../build/solc/solc --interface cli --report-file "../bytecode-report-<< parameters.label >>-cli.txt"
108+
- run: cd test-cases && python3 ../scripts/isolate_tests.py ../test/
109+
- run: cd test-cases && python3 ../scripts/bytecodecompare/prepare_report.py << parameters.binary_path >> --interface standard-json --report-file "../bytecode-report-<< parameters.label >>-json.txt"
110+
- run: cd test-cases && python3 ../scripts/bytecodecompare/prepare_report.py << parameters.binary_path >> --interface cli --report-file "../bytecode-report-<< parameters.label >>-cli.txt"
105111
- store_artifacts:
106112
path: bytecode-report-<< parameters.label >>-json.txt
107113
- store_artifacts:
@@ -313,6 +319,27 @@ defaults:
313319
CXX: clang++
314320
MAKEFLAGS: -j 5
315321

322+
- base_ubuntu2004: &base_ubuntu2004
323+
docker:
324+
- image: << pipeline.parameters.ubuntu-2004-docker-image >>
325+
environment:
326+
TERM: xterm
327+
MAKEFLAGS: -j 3
328+
329+
- base_ubuntu2004_small: &base_ubuntu2004_small
330+
<<: *base_ubuntu2004
331+
resource_class: small
332+
environment:
333+
TERM: xterm
334+
MAKEFLAGS: -j 2
335+
336+
- base_ubuntu2004_xlarge: &base_ubuntu2004_xlarge
337+
<<: *base_ubuntu2004
338+
resource_class: xlarge
339+
environment:
340+
TERM: xterm
341+
MAKEFLAGS: -j 10
342+
316343
- base_ubuntu2204: &base_ubuntu2204
317344
docker:
318345
- image: << pipeline.parameters.ubuntu-2204-docker-image >>
@@ -454,7 +481,7 @@ defaults:
454481
requires:
455482
- b_ubu_force_release
456483

457-
- workflow_ubuntu2204_static: &workflow_ubuntu2204_static
484+
- workflow_ubuntu2004_static: &workflow_ubuntu2004_static
458485
<<: *workflow_trigger_on_tags
459486
requires:
460487
- b_ubu_static
@@ -518,91 +545,91 @@ defaults:
518545
python2: true
519546

520547
- job_native_test_ext_gnosis: &job_native_test_ext_gnosis
521-
<<: *workflow_ubuntu2204_static
548+
<<: *workflow_ubuntu2004_static
522549
name: t_native_test_ext_gnosis
523550
project: gnosis
524551
binary_type: native
525552
nodejs_version: '16.18'
526553
- job_native_test_ext_zeppelin: &job_native_test_ext_zeppelin
527-
<<: *workflow_ubuntu2204_static
554+
<<: *workflow_ubuntu2004_static
528555
name: t_native_test_ext_zeppelin
529556
project: zeppelin
530557
binary_type: native
531558
resource_class: large
532559
- job_native_test_ext_ens: &job_native_test_ext_ens
533-
<<: *workflow_ubuntu2204_static
560+
<<: *workflow_ubuntu2004_static
534561
name: t_native_test_ext_ens
535562
project: ens
536563
binary_type: native
537564
nodejs_version: '18.11'
538565
- job_native_test_ext_trident: &job_native_test_ext_trident
539-
<<: *workflow_ubuntu2204_static
566+
<<: *workflow_ubuntu2004_static
540567
name: t_native_test_ext_trident
541568
project: trident
542569
binary_type: native
543570
nodejs_version: '16.18'
544571
- job_native_test_ext_euler: &job_native_test_ext_euler
545-
<<: *workflow_ubuntu2204_static
572+
<<: *workflow_ubuntu2004_static
546573
name: t_native_test_ext_euler
547574
project: euler
548575
binary_type: native
549576
resource_class: medium
550577
- job_native_test_ext_yield_liquidator: &job_native_test_ext_yield_liquidator
551-
<<: *workflow_ubuntu2204_static
578+
<<: *workflow_ubuntu2004_static
552579
name: t_native_test_ext_yield_liquidator
553580
project: yield-liquidator
554581
binary_type: native
555582
- job_native_test_ext_bleeps: &job_native_test_ext_bleeps
556-
<<: *workflow_ubuntu2204_static
583+
<<: *workflow_ubuntu2004_static
557584
name: t_native_test_ext_bleeps
558585
project: bleeps
559586
binary_type: native
560587
resource_class: medium
561588
- job_native_test_ext_pool_together: &job_native_test_ext_pool_together
562-
<<: *workflow_ubuntu2204_static
589+
<<: *workflow_ubuntu2004_static
563590
name: t_native_test_ext_pool_together
564591
project: pool-together
565592
binary_type: native
566593
nodejs_version: '16.18'
567594
- job_native_test_ext_perpetual_pools: &job_native_test_ext_perpetual_pools
568-
<<: *workflow_ubuntu2204_static
595+
<<: *workflow_ubuntu2004_static
569596
name: t_native_test_ext_perpetual_pools
570597
project: perpetual-pools
571598
binary_type: native
572599
nodejs_version: '18.11'
573600
- job_native_test_ext_uniswap: &job_native_test_ext_uniswap
574-
<<: *workflow_ubuntu2204_static
601+
<<: *workflow_ubuntu2004_static
575602
name: t_native_test_ext_uniswap
576603
project: uniswap
577604
binary_type: native
578605
nodejs_version: '16.18'
579606
- job_native_test_ext_prb_math: &job_native_test_ext_prb_math
580-
<<: *workflow_ubuntu2204_static
607+
<<: *workflow_ubuntu2004_static
581608
name: t_native_test_ext_prb_math
582609
project: prb-math
583610
binary_type: native
584611
nodejs_version: '18.11'
585612
- job_native_test_ext_elementfi: &job_native_test_ext_elementfi
586-
<<: *workflow_ubuntu2204_static
613+
<<: *workflow_ubuntu2004_static
587614
name: t_native_test_ext_elementfi
588615
project: elementfi
589616
binary_type: native
590617
resource_class: medium
591618
- job_native_test_ext_brink: &job_native_test_ext_brink
592-
<<: *workflow_ubuntu2204_static
619+
<<: *workflow_ubuntu2004_static
593620
name: t_native_test_ext_brink
594621
project: brink
595622
binary_type: native
596623
nodejs_version: '18.11'
597624
- job_native_test_ext_chainlink: &job_native_test_ext_chainlink
598-
<<: *workflow_ubuntu2204_static
625+
<<: *workflow_ubuntu2004_static
599626
name: t_native_test_ext_chainlink
600627
project: chainlink
601628
binary_type: native
602629
nodejs_version: '16.18'
603630
resource_class: large # Tests run out of memory on a smaller machine
604631
- job_native_test_ext_gp2: &job_native_test_ext_gp2
605-
<<: *workflow_ubuntu2204_static
632+
<<: *workflow_ubuntu2004_static
606633
name: t_native_test_ext_gp2
607634
project: gp2
608635
binary_type: native
@@ -826,8 +853,11 @@ jobs:
826853
MAKEFLAGS: -j 10
827854

828855
b_ubu_static:
856+
# We temporarily keep building static release binaries on ubuntu 20.04
857+
# to avoid glibc incompatibilities.
858+
# See: https://github.com/ethereum/solidity/issues/13954
829859
# On large runs 2x faster than on medium. 3x on xlarge.
830-
<<: *base_ubuntu2204_xlarge
860+
<<: *base_ubuntu2004_xlarge
831861
environment:
832862
TERM: xterm
833863
MAKEFLAGS: -j 10
@@ -838,8 +868,14 @@ jobs:
838868
- run:
839869
name: strip binary
840870
command: strip build/solc/solc
841-
- store_artifacts: *artifacts_solc
842-
- persist_to_workspace: *artifacts_executables
871+
- store_artifacts:
872+
path: build/solc/solc
873+
destination: solc-static-linux
874+
- run: mv build/solc/solc build/solc/solc-static-linux
875+
- persist_to_workspace:
876+
root: build
877+
paths:
878+
- solc/solc-static-linux
843879
- gitter_notify_failure_unless_pr
844880

845881
b_ubu_codecov:
@@ -1096,7 +1132,7 @@ jobs:
10961132
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
10971133
# Suppress CLN memory leak.
10981134
# See: https://github.com/ethereum/solidity/issues/13891 for details.
1099-
LSAN_OPTIONS: suppressions=.circleci/cln-asan.supp
1135+
LSAN_OPTIONS: suppressions=/root/project/.circleci/cln-asan.supp:print_suppressions=0
11001136
<<: *steps_cmdline_tests
11011137

11021138
t_ubu_asan_soltest:
@@ -1109,7 +1145,7 @@ jobs:
11091145
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
11101146
# Suppress CLN memory leak.
11111147
# See: https://github.com/ethereum/solidity/issues/13891 for details.
1112-
LSAN_OPTIONS: suppressions=.circleci/cln-asan.supp
1148+
LSAN_OPTIONS: suppressions=/root/project/.circleci/cln-asan.supp
11131149
<<: *steps_soltest
11141150

11151151
t_ubu_asan_clang_soltest:
@@ -1248,7 +1284,7 @@ jobs:
12481284
- run:
12491285
name: External <<parameters.project>> tests (native)
12501286
command: |
1251-
test/externalTests/<<parameters.project>>.sh native /tmp/workspace/solc/solc
1287+
test/externalTests/<<parameters.project>>.sh native /tmp/workspace/solc/solc-static-linux
12521288
- store_artifacts:
12531289
path: reports/externalTests/
12541290
# persist_to_workspace fails if the directory does not exist and the test script will create
@@ -1389,6 +1425,23 @@ jobs:
13891425
- store_artifacts: *artifacts_test_results
13901426
- gitter_notify_failure_unless_pr
13911427

1428+
# Note: b_bytecode_ubu_static is required because b_ubu_static and b_ubu
1429+
# are currently built on different Ubuntu base images.
1430+
# It can be safely removed once we move both to the same Ubuntu version.
1431+
b_bytecode_ubu_static:
1432+
<<: *base_ubuntu2004_small
1433+
environment:
1434+
TERM: xterm
1435+
MAKEFLAGS: -j 2
1436+
LC_ALL: C
1437+
steps:
1438+
- checkout
1439+
- attach_workspace:
1440+
at: build
1441+
- prepare_bytecode_report:
1442+
label: "ubuntu2004-static"
1443+
binary_path: "../build/solc/solc-static-linux"
1444+
13921445
b_bytecode_ubu:
13931446
<<: *base_ubuntu2204_small
13941447
environment:
@@ -1401,6 +1454,7 @@ jobs:
14011454
at: build
14021455
- prepare_bytecode_report:
14031456
label: "ubuntu"
1457+
binary_path: "../build/solc/solc"
14041458

14051459
b_bytecode_osx:
14061460
<<: *base_osx
@@ -1414,6 +1468,7 @@ jobs:
14141468
at: .
14151469
- prepare_bytecode_report:
14161470
label: "osx"
1471+
binary_path: "../build/solc/solc"
14171472

14181473
b_bytecode_win:
14191474
<<: *base_win_bash
@@ -1424,22 +1479,13 @@ jobs:
14241479
# platforms so line ending conversions must absolutely be disabled.
14251480
- run: git config --global core.autocrlf false
14261481
- checkout
1482+
# Ensure windows has python3 alias required by prepare_bytecode_report
1483+
- run: ln -s /c/tools/miniconda3/python /c/tools/miniconda3/python3
14271484
- attach_workspace:
14281485
at: build
1429-
- run: mkdir test-cases/
1430-
- run: cd test-cases/ && python ../scripts/isolate_tests.py ../test/
1431-
- run: cd test-cases/ && python ../scripts/bytecodecompare/prepare_report.py ../build/solc/Release/solc.exe --interface standard-json --report-file ../bytecode-report-windows-json.txt
1432-
- run: cd test-cases/ && python ../scripts/bytecodecompare/prepare_report.py ../build/solc/Release/solc.exe --interface cli --report-file ../bytecode-report-windows-cli.txt
1433-
- store_artifacts:
1434-
path: bytecode-report-windows-json.txt
1435-
- store_artifacts:
1436-
path: bytecode-report-windows-cli.txt
1437-
- persist_to_workspace:
1438-
root: .
1439-
paths:
1440-
- bytecode-report-windows-json.txt
1441-
- bytecode-report-windows-cli.txt
1442-
- gitter_notify_failure_unless_pr
1486+
- prepare_bytecode_report:
1487+
label: "windows"
1488+
binary_path: "../build/solc/Release/solc.exe"
14431489

14441490
b_bytecode_ems:
14451491
<<: *base_node_small
@@ -1464,6 +1510,8 @@ jobs:
14641510
environment:
14651511
REPORT_FILES: |
14661512
bytecode-report-emscripten.txt
1513+
bytecode-report-ubuntu2004-static-json.txt
1514+
bytecode-report-ubuntu2004-static-cli.txt
14671515
bytecode-report-ubuntu-json.txt
14681516
bytecode-report-ubuntu-cli.txt
14691517
bytecode-report-osx-json.txt
@@ -1506,10 +1554,10 @@ jobs:
15061554
name: Gather and rename binaries from dependent jobs
15071555
command: |
15081556
mkdir github/
1509-
cp workspace/solc/solc github/solc-static-linux
1510-
cp workspace/build/solc/solc github/solc-macos
1511-
cp workspace/solc/Release/solc.exe github/solc-windows.exe
1512-
cp workspace/soljson.js github/soljson.js
1557+
cp workspace/solc/solc-static-linux github/solc-static-linux
1558+
cp workspace/build/solc/solc github/solc-macos
1559+
cp workspace/solc/Release/solc.exe github/solc-windows.exe
1560+
cp workspace/soljson.js github/soljson.js
15131561
15141562
cd github/
15151563
tar --create --file ../github-binaries.tar *
@@ -1635,6 +1683,10 @@ workflows:
16351683
- t_win_soltest: *workflow_win
16361684

16371685
# Bytecode comparison:
1686+
- b_bytecode_ubu_static:
1687+
<<: *workflow_trigger_on_tags
1688+
requires:
1689+
- b_ubu_static
16381690
- b_bytecode_ubu:
16391691
<<: *workflow_trigger_on_tags
16401692
requires:
@@ -1654,6 +1706,7 @@ workflows:
16541706
- t_bytecode_compare:
16551707
<<: *workflow_trigger_on_tags
16561708
requires:
1709+
- b_bytecode_ubu_static
16571710
- b_bytecode_ubu
16581711
- b_bytecode_win
16591712
- b_bytecode_osx

0 commit comments

Comments
 (0)