@@ -3,31 +3,50 @@ name: CI scripts
33
44on :
55 push :
6- branches :
7- - master
8- - dev
6+ branches : [master]
97 pull_request :
10- schedule :
11- # run CI every day even if no PRs/merges occur
12- - cron : ' 0 12 * * *'
138
149concurrency :
1510 group : ${{ github.workflow }}-${{ github.ref }}
1611 cancel-in-progress : true
1712
13+ permissions :
14+ contents : read
15+
1816jobs :
1917 tests :
2018 runs-on : ${{ matrix.os }}
2119 strategy :
2220 fail-fast : false
2321 matrix :
2422 os : ["ubuntu-latest", "windows-2025"]
25- python : ${{ (github.event_name == 'pull_request' && fromJSON('["3.8", "3.13"]')) || fromJSON('["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]') }}
26- type : ["brownie", "buidler", "dapp", "embark", "hardhat", "solc", "truffle", "waffle", "foundry", "standard", "vyper", "solc_multi_file", "hardhat_multi_file"]
23+ python : >-
24+ ${{
25+ (github.event_name == 'pull_request' && fromJSON('["3.10", "3.14"]'))
26+ || fromJSON('["3.10", "3.11", "3.12", "3.13", "3.14"]')
27+ }}
28+ type :
29+ - brownie
30+ - buidler
31+ - dapp
32+ - embark
33+ - hardhat
34+ - solc
35+ - truffle
36+ - waffle
37+ - foundry
38+ - standard
39+ - vyper
40+ - solc_multi_file
41+ - hardhat_multi_file
42+ - hardhat_v3
2743 include :
2844 # buidler requires older NodeJS
2945 - type : buidler
3046 node-version : 12
47+
48+ - type : hardhat_v3
49+ node-version : 22
3150 exclude :
3251 # Currently broken, tries to pull git:// which is blocked by GH
3352 - type : embark
@@ -38,39 +57,42 @@ jobs:
3857 - os : windows-2025
3958 type : foundry
4059 steps :
41- - uses : actions/checkout@v5
42- - name : Set up shell
43- if : runner.os == 'Windows'
44- run : |
45- echo 'C:\msys64\mingw64\bin' >> "$GITHUB_PATH"
46- echo 'C:\msys64\usr\bin' >> "$GITHUB_PATH"
47- - name : Set up Node
48- uses : actions/setup-node@v6
49- with :
50- node-version : ${{ matrix.node-version || '18.15' }}
51- - name : Set up Python ${{ matrix.python }}
52- uses : actions/setup-python@v6
53- with :
54- python-version : ${{ matrix.python }}
55- - name : Install dependencies
56- run : |
57- pip install .
58- solc-select use 0.5.7 --always-install
59- - name : Set up nix
60- if : matrix.type == 'dapp'
61- uses : cachix/install-nix-action@v31
62- - name : Set up cachix
63- if : matrix.type == 'dapp'
64- uses : cachix/cachix-action@v16
65- with :
66- name : dapp
67- - name : Install Foundry
68- if : matrix.type == 'foundry'
69- uses : foundry-rs/foundry-toolchain@v1
70- - name : Run Tests
71- env :
72- TEST_TYPE : ${{ matrix.type }}
73- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
74- shell : bash
75- run : |
76- bash "scripts/ci_test_${TEST_TYPE}.sh"
60+ - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
61+ with :
62+ persist-credentials : false
63+ - name : Set up shell
64+ if : runner.os == 'Windows'
65+ run : |
66+ printf 'C:\\msys64\\mingw64\\bin\n' >> "$GITHUB_PATH"
67+ printf 'C:\\msys64\\usr\\bin\n' >> "$GITHUB_PATH"
68+ - name : Set up Node
69+ uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
70+ with :
71+ node-version : ${{ matrix.node-version || '20' }}
72+ - name : Set up Python ${{ matrix.python }}
73+ uses : astral-sh/setup-uv@f06b870e0a91d23284a3013acc55e6f88ab4b904 # v7
74+ with :
75+ python-version : ${{ matrix.python }}
76+ activate-environment : true
77+ - name : Install dependencies
78+ run : |
79+ uv pip install .
80+ solc-select use 0.5.7 --always-install
81+ - name : Set up nix
82+ if : matrix.type == 'dapp'
83+ uses : cachix/install-nix-action@bec50b45a8bb06017c42af46702a3f502adcfa9e # v31
84+ - name : Set up cachix
85+ if : matrix.type == 'dapp'
86+ uses : cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
87+ with :
88+ name : dapp
89+ - name : Install Foundry
90+ if : matrix.type == 'foundry'
91+ uses : foundry-rs/foundry-toolchain@8b0419c685ef46cb79ec93fbdc131174afceb730 # v1
92+ - name : Run Tests
93+ env :
94+ TEST_TYPE : ${{ matrix.type }}
95+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
96+ shell : bash
97+ run : |
98+ bash "scripts/ci_test_${TEST_TYPE}.sh"
0 commit comments