Skip to content

Commit a07b3ec

Browse files
authored
Merge pull request #12452 from ethereum/parameterized-ci-job-templates
[CI] Templates for parameterized jobs
2 parents cf8a7c3 + b1e7964 commit a07b3ec

File tree

1 file changed

+101
-80
lines changed

1 file changed

+101
-80
lines changed

.circleci/config.yml

Lines changed: 101 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,91 @@ defaults:
475475
requires:
476476
- b_win_release
477477

478+
# --------------------------------------------------------------------------
479+
# Parameterized Job Templates
480+
481+
# Separate compile-only runs of those external tests where a full run takes much longer.
482+
- job_ems_compile_ext_colony: &job_ems_compile_ext_colony
483+
<<: *workflow_emscripten
484+
name: t_ems_compile_ext_colony
485+
project: colony
486+
binary_type: solcjs
487+
compile_only: 1
488+
nodejs_version: '14'
489+
- job_native_compile_ext_gnosis: &job_native_compile_ext_gnosis
490+
<<: *workflow_ubuntu2004_static
491+
name: t_native_compile_ext_gnosis
492+
project: gnosis
493+
binary_type: native
494+
compile_only: 1
495+
nodejs_version: '14'
496+
497+
- job_native_test_ext_gnosis: &job_native_test_ext_gnosis
498+
<<: *workflow_emscripten
499+
name: t_native_test_ext_gnosis
500+
project: gnosis
501+
binary_type: native
502+
# NOTE: Tests do not start on node.js 14 ("ganache-cli exited early with code 1").
503+
nodejs_version: '12'
504+
- job_native_test_ext_gnosis_v2: &job_native_test_ext_gnosis_v2
505+
<<: *workflow_ubuntu2004_static
506+
name: t_native_test_ext_gnosis_v2
507+
project: gnosis-v2
508+
binary_type: native
509+
# NOTE: Tests do not start on node.js 14 ("ganache-cli exited early with code 1").
510+
nodejs_version: '12'
511+
- job_native_test_ext_zeppelin: &job_native_test_ext_zeppelin
512+
<<: *workflow_ubuntu2004_static
513+
name: t_native_test_ext_zeppelin
514+
project: zeppelin
515+
binary_type: native
516+
# NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported"
517+
nodejs_version: '16'
518+
resource_class: large
519+
- job_native_test_ext_ens: &job_native_test_ext_ens
520+
<<: *workflow_ubuntu2004_static
521+
name: t_native_test_ext_ens
522+
project: ens
523+
binary_type: native
524+
# NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported"
525+
nodejs_version: '16'
526+
- job_native_test_ext_trident: &job_native_test_ext_trident
527+
<<: *workflow_ubuntu2004_static
528+
name: t_native_test_ext_trident
529+
project: trident
530+
binary_type: native
531+
# NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported"
532+
nodejs_version: '16'
533+
- job_native_test_ext_euler: &job_native_test_ext_euler
534+
<<: *workflow_ubuntu2004_static
535+
name: t_native_test_ext_euler
536+
project: euler
537+
binary_type: native
538+
# NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported"
539+
nodejs_version: '16'
540+
- job_native_test_ext_yield_liquidator: &job_native_test_ext_yield_liquidator
541+
<<: *workflow_ubuntu2004_static
542+
name: t_native_test_ext_yield_liquidator
543+
project: yield-liquidator
544+
binary_type: native
545+
# NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported"
546+
nodejs_version: '16'
547+
- job_native_test_ext_bleeps: &job_native_test_ext_bleeps
548+
<<: *workflow_ubuntu2004_static
549+
name: t_native_test_ext_bleeps
550+
project: bleeps
551+
binary_type: native
552+
# NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported"
553+
nodejs_version: '16'
554+
resource_class: medium
555+
- job_ems_test_ext_colony: &job_ems_test_ext_colony
556+
<<: *workflow_emscripten
557+
name: t_ems_test_ext_colony
558+
project: colony
559+
binary_type: solcjs
560+
nodejs_version: '14'
561+
resource_class: medium
562+
478563
# -----------------------------------------------------------------------------------------------
479564
jobs:
480565

@@ -1335,82 +1420,19 @@ workflows:
13351420
- t_ems_solcjs: *workflow_emscripten
13361421
- t_ems_ext_hardhat: *workflow_emscripten
13371422

1338-
# Separate compile-only runs of those external tests where a full run takes much longer.
1339-
- t_ems_ext:
1340-
<<: *workflow_emscripten
1341-
name: t_ems_compile_ext_colony
1342-
project: colony
1343-
binary_type: solcjs
1344-
compile_only: 1
1345-
nodejs_version: '14'
1346-
- t_ems_ext:
1347-
<<: *workflow_ubuntu2004_static
1348-
name: t_native_compile_ext_gnosis
1349-
project: gnosis
1350-
binary_type: native
1351-
compile_only: 1
1352-
nodejs_version: '14'
1423+
- t_ems_ext: *job_ems_compile_ext_colony
1424+
- t_ems_ext: *job_native_compile_ext_gnosis
13531425

13541426
# FIXME: Gnosis tests are pretty flaky right now. They often fail on CircleCI due to random ProviderError
13551427
# and there are also other less frequent problems. See https://github.com/gnosis/safe-contracts/issues/216.
1356-
#- t_ems_ext:
1357-
# <<: *workflow_emscripten
1358-
# name: t_native_test_ext_gnosis
1359-
# project: gnosis
1360-
# binary_type: native
1361-
# # NOTE: Tests do not start on node.js 14 ("ganache-cli exited early with code 1").
1362-
# nodejs_version: '12'
1363-
- t_ems_ext:
1364-
<<: *workflow_ubuntu2004_static
1365-
name: t_native_test_ext_gnosis_v2
1366-
project: gnosis-v2
1367-
binary_type: native
1368-
# NOTE: Tests do not start on node.js 14 ("ganache-cli exited early with code 1").
1369-
nodejs_version: '12'
1370-
- t_ems_ext:
1371-
<<: *workflow_ubuntu2004_static
1372-
name: t_native_test_ext_zeppelin
1373-
project: zeppelin
1374-
binary_type: native
1375-
# NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported"
1376-
nodejs_version: '16'
1377-
resource_class: large
1378-
- t_ems_ext:
1379-
<<: *workflow_ubuntu2004_static
1380-
name: t_native_test_ext_ens
1381-
project: ens
1382-
binary_type: native
1383-
# NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported"
1384-
nodejs_version: '16'
1385-
- t_ems_ext:
1386-
<<: *workflow_ubuntu2004_static
1387-
name: t_native_test_ext_trident
1388-
project: trident
1389-
binary_type: native
1390-
# NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported"
1391-
nodejs_version: '16'
1392-
- t_ems_ext:
1393-
<<: *workflow_ubuntu2004_static
1394-
name: t_native_test_ext_euler
1395-
project: euler
1396-
binary_type: native
1397-
# NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported"
1398-
nodejs_version: '16'
1399-
- t_ems_ext:
1400-
<<: *workflow_ubuntu2004_static
1401-
name: t_native_test_ext_yield_liquidator
1402-
project: yield-liquidator
1403-
binary_type: native
1404-
# NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported"
1405-
nodejs_version: '16'
1406-
- t_ems_ext:
1407-
<<: *workflow_ubuntu2004_static
1408-
name: t_native_test_ext_bleeps
1409-
project: bleeps
1410-
binary_type: native
1411-
# NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported"
1412-
nodejs_version: '16'
1413-
resource_class: medium
1428+
#-t_ems_ext: *job_native_test_ext_gnosis
1429+
- t_ems_ext: *job_native_test_ext_gnosis_v2
1430+
- t_ems_ext: *job_native_test_ext_zeppelin
1431+
- t_ems_ext: *job_native_test_ext_ens
1432+
- t_ems_ext: *job_native_test_ext_trident
1433+
- t_ems_ext: *job_native_test_ext_euler
1434+
- t_ems_ext: *job_native_test_ext_yield_liquidator
1435+
- t_ems_ext: *job_native_test_ext_bleeps
14141436

14151437
# Windows build and tests
14161438
- b_win: *workflow_trigger_on_tags
@@ -1420,18 +1442,23 @@ workflows:
14201442

14211443
# Bytecode comparison:
14221444
- b_bytecode_ubu:
1445+
<<: *workflow_trigger_on_tags
14231446
requires:
14241447
- b_ubu
14251448
- b_bytecode_win:
1449+
<<: *workflow_trigger_on_tags
14261450
requires:
14271451
- b_win
14281452
- b_bytecode_osx:
1453+
<<: *workflow_trigger_on_tags
14291454
requires:
14301455
- b_osx
14311456
- b_bytecode_ems:
1457+
<<: *workflow_trigger_on_tags
14321458
requires:
14331459
- b_ems
14341460
- t_bytecode_compare:
1461+
<<: *workflow_trigger_on_tags
14351462
requires:
14361463
- b_bytecode_ubu
14371464
- b_bytecode_win
@@ -1471,10 +1498,4 @@ workflows:
14711498

14721499
# Emscripten build and tests that take more than 15 minutes to execute
14731500
- b_ems: *workflow_trigger_on_tags
1474-
- t_ems_ext:
1475-
<<: *workflow_emscripten
1476-
name: t_ems_test_ext_colony
1477-
project: colony
1478-
binary_type: solcjs
1479-
nodejs_version: '14'
1480-
resource_class: medium
1501+
- t_ems_ext: *job_ems_test_ext_colony

0 commit comments

Comments
 (0)