Skip to content

Commit a2c5046

Browse files
committed
[CI] Dynamically generate list of packages to test
1 parent ab96c82 commit a2c5046

File tree

1 file changed

+43
-28
lines changed

1 file changed

+43
-28
lines changed

.github/workflows/Integration.yml

Lines changed: 43 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,28 @@ concurrency:
2828
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
2929

3030
jobs:
31+
generate-packages-list:
32+
name: Generate list of packages for integration tests
33+
runs-on: ubuntu-latest
34+
outputs:
35+
matrix: ${{ steps.set-matrix.outputs.matrix }}
36+
steps:
37+
- uses: actions/checkout@v5
38+
- name: Set packages
39+
id: set-packages
40+
run: |
41+
set -e
42+
shopt -s globstar
43+
# Find all test files and generate their list in JSON format
44+
PACKAGES='packages=['
45+
for pkg in test/integration/*; do
46+
PACKAGES="${PACKAGES}\"$(basename ${pkg})\","
47+
done
48+
PACKAGES="${PACKAGES}]"
49+
echo "${PACKAGES}" | tee "${GITHUB_OUTPUT}"
50+
3151
integration:
52+
needs: generate-packages-list
3253
timeout-minutes: 45
3354
name: Integration Tests - ${{ matrix.package }} - Julia ${{ matrix.version }}
3455
runs-on: ${{ matrix.os }}
@@ -39,41 +60,35 @@ jobs:
3960
strategy:
4061
fail-fast: false
4162
matrix:
63+
package: ${{ fromJson(needs.generate-packages-list.outputs.set-packages) }}
4264
version:
4365
- '1.10'
4466
- '1.11'
4567
os:
4668
- linux-x86-n2-32
47-
package:
48-
- Bijectors
49-
- DifferentiationInterface
50-
- Distributions
51-
- DynamicExpressions
52-
- Lux
53-
- SciML
54-
- KernelAbstractions
55-
- Molly
56-
- MPI
5769
exclude:
5870
- version: '1.10'
5971
os: linux-x86-n2-32
6072
package: Molly
6173
steps:
62-
- uses: actions/checkout@v5
63-
- uses: julia-actions/setup-julia@v2
64-
with:
65-
version: ${{ matrix.version }}
66-
- uses: julia-actions/cache@v2
67-
- name: "Install Dependencies"
68-
run: |
69-
julia --color=yes --project=test/integration/${{ matrix.package }} --threads=auto --check-bounds=yes -O1 -e 'using Pkg; Pkg.develop([PackageSpec(; path) for path in (".", "lib/EnzymeCore")])'
70-
shell: bash
71-
if: ${{ matrix.version == '1.10' }}
72-
- name: "Instantiate"
73-
run: |
74-
julia --color=yes --project=test/integration/${{ matrix.package }} --threads=auto --check-bounds=yes -O1 -e 'using Pkg; Pkg.instantiate()'
75-
shell: bash
76-
- name: "Run tests"
77-
run: |
78-
julia --color=yes --project=test/integration/${{ matrix.package }} --threads=auto --check-bounds=yes -O1 test/integration/${{ matrix.package }}/runtests.jl
79-
shell: bash
74+
- run: |
75+
echo "Hello from ${{ matrix.package }} in Julia ${{ matrix.version }}"
76+
77+
# - uses: actions/checkout@v5
78+
# - uses: julia-actions/setup-julia@v2
79+
# with:
80+
# version: ${{ matrix.version }}
81+
# - uses: julia-actions/cache@v2
82+
# - name: "Install Dependencies"
83+
# run: |
84+
# julia --color=yes --project=test/integration/${{ matrix.package }} --threads=auto --check-bounds=yes -O1 -e 'using Pkg; Pkg.develop([PackageSpec(; path) for path in (".", "lib/EnzymeCore")])'
85+
# shell: bash
86+
# if: ${{ matrix.version == '1.10' }}
87+
# - name: "Instantiate"
88+
# run: |
89+
# julia --color=yes --project=test/integration/${{ matrix.package }} --threads=auto --check-bounds=yes -O1 -e 'using Pkg; Pkg.instantiate()'
90+
# shell: bash
91+
# - name: "Run tests"
92+
# run: |
93+
# julia --color=yes --project=test/integration/${{ matrix.package }} --threads=auto --check-bounds=yes -O1 test/integration/${{ matrix.package }}/runtests.jl
94+
# shell: bash

0 commit comments

Comments
 (0)