From 273edd2c8607b83a7d0c15f7d373ee02b61a400e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Tue, 24 May 2022 15:23:20 +0200 Subject: [PATCH] CI: Switch from deprecated circleci/node images to cimg/node --- .circleci/config.yml | 62 +++++++++++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e75eed4bd..a235bcbe0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -428,7 +428,7 @@ defaults: - base_python_small: &base_python_small docker: - - image: circleci/python:3.6 + - image: cimg/python:3.6 resource_class: small environment: TERM: xterm @@ -436,7 +436,7 @@ defaults: - base_node_small: &base_node_small docker: - - image: circleci/node + - image: cimg/node:current resource_class: small environment: TERM: xterm @@ -537,98 +537,97 @@ defaults: project: colony binary_type: solcjs compile_only: 1 - nodejs_version: '14' + nodejs_version: '14.20' + python2: true - job_native_test_ext_gnosis: &job_native_test_ext_gnosis <<: *workflow_ubuntu2004_static name: t_native_test_ext_gnosis project: gnosis binary_type: native - # NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported" - nodejs_version: '16' + nodejs_version: '16.18' - job_native_test_ext_zeppelin: &job_native_test_ext_zeppelin <<: *workflow_ubuntu2004_static name: t_native_test_ext_zeppelin project: zeppelin binary_type: native - # NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported" - nodejs_version: '16' + nodejs_version: '16.18' resource_class: large - job_native_test_ext_ens: &job_native_test_ext_ens <<: *workflow_ubuntu2004_static name: t_native_test_ext_ens project: ens binary_type: native - nodejs_version: '16' + nodejs_version: '16.18' - job_native_test_ext_trident: &job_native_test_ext_trident <<: *workflow_ubuntu2004_static name: t_native_test_ext_trident project: trident binary_type: native - nodejs_version: '16' + nodejs_version: '16.18' - job_native_test_ext_euler: &job_native_test_ext_euler <<: *workflow_ubuntu2004_static name: t_native_test_ext_euler project: euler binary_type: native - nodejs_version: '16' + nodejs_version: '16.18' resource_class: medium - job_native_test_ext_yield_liquidator: &job_native_test_ext_yield_liquidator <<: *workflow_ubuntu2004_static name: t_native_test_ext_yield_liquidator project: yield-liquidator binary_type: native - nodejs_version: '16' + nodejs_version: '16.18' - job_native_test_ext_bleeps: &job_native_test_ext_bleeps <<: *workflow_ubuntu2004_static name: t_native_test_ext_bleeps project: bleeps binary_type: native - nodejs_version: '16' + nodejs_version: '16.18' resource_class: medium - job_native_test_ext_pool_together: &job_native_test_ext_pool_together <<: *workflow_ubuntu2004_static name: t_native_test_ext_pool_together project: pool-together binary_type: native - nodejs_version: '16' + nodejs_version: '16.18' - job_native_test_ext_perpetual_pools: &job_native_test_ext_perpetual_pools <<: *workflow_ubuntu2004_static name: t_native_test_ext_perpetual_pools project: perpetual-pools binary_type: native - nodejs_version: '16' + nodejs_version: '16.18' - job_native_test_ext_uniswap: &job_native_test_ext_uniswap <<: *workflow_ubuntu2004_static name: t_native_test_ext_uniswap project: uniswap binary_type: native - nodejs_version: '16' + nodejs_version: '16.18' - job_native_test_ext_prb_math: &job_native_test_ext_prb_math <<: *workflow_ubuntu2004_static name: t_native_test_ext_prb_math project: prb-math binary_type: native - nodejs_version: '16' + nodejs_version: '16.18' - job_native_test_ext_elementfi: &job_native_test_ext_elementfi <<: *workflow_ubuntu2004_static name: t_native_test_ext_elementfi project: elementfi binary_type: native - nodejs_version: '16' + nodejs_version: '16.18' resource_class: medium - job_native_test_ext_brink: &job_native_test_ext_brink <<: *workflow_ubuntu2004_static name: t_native_test_ext_brink project: brink binary_type: native - nodejs_version: '16' + nodejs_version: '16.18' - job_native_test_ext_chainlink: &job_native_test_ext_chainlink <<: *workflow_ubuntu2004_static name: t_native_test_ext_chainlink project: chainlink binary_type: native - nodejs_version: '16' + nodejs_version: '16.18' resource_class: large # Tests run out of memory on a smaller machine - job_native_test_ext_gp2: &job_native_test_ext_gp2 <<: *workflow_ubuntu2004_static @@ -636,14 +635,15 @@ defaults: project: gp2 binary_type: native # NOTE: Tests crash on nodejs 17: "Error: error:0308010C:digital envelope routines::unsupported" - nodejs_version: '16' + nodejs_version: '16.18' - job_ems_test_ext_colony: &job_ems_test_ext_colony <<: *workflow_emscripten name: t_ems_test_ext_colony project: colony binary_type: solcjs - nodejs_version: '14' + nodejs_version: '14.20' resource_class: medium + python2: true - job_b_ubu_asan_clang: &job_b_ubu_asan_clang <<: *workflow_trigger_on_tags @@ -1178,7 +1178,7 @@ jobs: t_ems_ext_hardhat: <<: *base_node_small docker: - - image: circleci/node:16 + - image: cimg/node:16.18 environment: TERM: xterm HARDHAT_TESTS_SOLC_PATH: /tmp/workspace/soljson.js @@ -1217,12 +1217,15 @@ jobs: default: 0 nodejs_version: type: string - default: latest + default: current resource_class: type: string default: small + python2: + type: boolean + default: false docker: - - image: circleci/node:<> + - image: cimg/node:<> resource_class: <> # NOTE: Each external test runs up to 6 independent settings presets. If parallelism is higher than # actual preset count, some runs will exit immediately. If it's lower, some runs will get more than one preset. @@ -1238,7 +1241,18 @@ jobs: name: Install lsof command: | # lsof is used by Colony in its stop-blockchain-client.sh script + sudo apt update sudo apt-get --quiet --assume-yes --no-install-recommends install lsof + - when: + condition: << parameters.python2 >> + steps: + - run: + name: Install Python 2 and make it the default + command: | + # python is used by node-gyp to build native modules (needed for Colony). + # In the 14.x image node-gyp still requires Python 2. + sudo apt install python2 --assume-yes --no-install-recommends + sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1 - when: condition: equal: [<< parameters.binary_type >>, "solcjs"]