@@ -2,21 +2,42 @@ name: Noir tests
2
2
3
3
on :
4
4
push :
5
- branches :
6
- - master
5
+ branches :
6
+ - master
7
7
pull_request :
8
8
9
9
env :
10
10
CARGO_TERM_COLOR : always
11
+ MINIMUM_NOIR_VERSION : v0.36.0
11
12
12
13
jobs :
14
+ noir-version-list :
15
+ name : Query supported Noir versions
16
+ runs-on : ubuntu-latest
17
+ outputs :
18
+ noir_versions : ${{ steps.get_versions.outputs.versions }}
19
+
20
+ steps :
21
+ - name : Checkout sources
22
+ id : get_versions
23
+ run : |
24
+ # gh returns the Noir releases in reverse chronological order so we keep all releases published after the minimum supported version.
25
+ VERSIONS=$(gh release list -R noir-lang/noir --exclude-pre-releases --json tagName -q 'map(.tagName) | index(env.MINIMUM_NOIR_VERSION) as $index | if $index then .[0:$index+1] else [env.MINIMUM_NOIR_VERSION] end')
26
+ echo "versions=$VERSIONS"
27
+ echo "versions=$VERSIONS" >> $GITHUB_OUTPUT
28
+ env :
29
+ GH_TOKEN : ${{ github.token }}
30
+
13
31
test :
32
+ needs : [noir-version-list]
14
33
name : Test on Nargo ${{matrix.toolchain}}
15
34
runs-on : ubuntu-latest
16
35
strategy :
17
36
fail-fast : false
18
37
matrix :
19
- toolchain : [nightly, 0.36.0]
38
+ toolchain : ${{ fromJson( needs.noir-version-list.outputs.noir_versions )}}
39
+ include :
40
+ - toolchain : nightly
20
41
steps :
21
42
- name : Checkout sources
22
43
uses : actions/checkout@v4
38
59
- name : Install Nargo
39
60
40
61
with :
41
- toolchain : 0.36.0
62
+ toolchain : ${{ env.MINIMUM_NOIR_VERSION }}
42
63
43
64
- name : Run formatter
44
65
run : nargo fmt --check
50
71
runs-on : ubuntu-latest
51
72
# We want this job to always run (even if the dependant jobs fail) as we want this job to fail rather than skipping.
52
73
if : ${{ always() }}
53
- needs :
74
+ needs :
54
75
- test
55
76
- format
56
77
64
85
fi
65
86
env :
66
87
# We treat any cancelled, skipped or failing jobs as a failure for the workflow as a whole.
67
- FAIL : ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped') }}
88
+ FAIL : ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped') }}
0 commit comments