Skip to content

Commit 3e8867c

Browse files
committed
ci: generate one job per session
Signed-off-by: Henry Schreiner <[email protected]>
1 parent 6fd3904 commit 3e8867c

File tree

1 file changed

+38
-3
lines changed

1 file changed

+38
-3
lines changed

.github/workflows/ci.yml

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,55 @@ on:
77
branches:
88
- master
99

10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
1014
env:
1115
FORCE_COLOR: 3
1216

1317
jobs:
18+
generate-jobs:
19+
runs-on: ubuntu-latest
20+
outputs:
21+
session: ${{ steps.set-matrix.outputs.session }}
22+
steps:
23+
- uses: actions/checkout@v3
24+
- uses: henryiii/nox@henryiii/feat/json
25+
- id: set-matrix
26+
run: |
27+
MATRIX=$(
28+
nox --json -l | jq -c '[.[].session]'
29+
)
30+
echo "session=$MATRIX" | tee --append $GITHUB_OUTPUT
31+
1432
checks:
33+
needs: [generate-jobs]
1534
runs-on: ${{ matrix.runs-on }}
1635
strategy:
1736
fail-fast: false
1837
matrix:
1938
runs-on: [ubuntu-latest, macos-latest, windows-latest]
39+
session: ${{ fromJson(needs.generate-jobs.outputs.session) }}
40+
exclude:
41+
- runs-on: windows-latest
42+
session: test(hello-cmake-package)
43+
- runs-on: windows-latest
44+
session: dist(hello-cmake-package)
2045

21-
name: Check on ${{ matrix.runs-on }}
46+
name: Session ${{ matrix.session }} on ${{ matrix.runs-on }}
2247

2348
steps:
2449
- uses: actions/checkout@v3
25-
- uses: wntrblm/nox@main
26-
- run: nox
50+
- uses: wntrblm/[email protected]
51+
- run: nox -s '${{ matrix.session }}'
52+
53+
pass:
54+
if: always()
55+
needs: [checks]
56+
runs-on: ubuntu-latest
57+
steps:
58+
- name: Decide whether the needed jobs succeeded or failed
59+
uses: re-actors/alls-green@release/v1
60+
with:
61+
jobs: ${{ toJSON(needs) }}

0 commit comments

Comments
 (0)