@@ -28,21 +28,34 @@ concurrency:
28
28
cancel-in-progress : true
29
29
30
30
jobs :
31
+ build_matrix :
32
+ runs-on : ubuntu-latest
33
+ outputs :
34
+ matrix : ${{ steps.matrix.outputs.matrix }}
35
+ steps :
36
+ - id : matrix
37
+ run : |
38
+ JSON=$(cat << EOF | jq -c '[foreach .[] as $platform (0; foreach $platform.policies.[] as $policy (0; {policy: $policy, platform: $platform.platform, runner: $platform.runner}))]'
39
+ [
40
+ {"platform": "x86_64", "runner": "ubuntu-22.04", "policies": ["manylinux2014", "manylinux_2_28", "manylinux_2_34", "musllinux_1_2"]},
41
+ {"platform": "aarch64", "runner": "ubuntu-22.04", "policies": ["manylinux2014", "manylinux_2_28", "manylinux_2_34", "musllinux_1_2"]},
42
+ {"platform": "i686", "runner": "ubuntu-22.04", "policies": ["manylinux2014", "musllinux_1_2"]},
43
+ {"platform": "armv7l", "runner": "ubuntu-22.04", "policies": ["manylinux_2_31", "musllinux_1_2"]}
44
+ ]
45
+ EOF
46
+ )
47
+ echo "matrix=${JSON}" >> $GITHUB_OUTPUT
48
+
31
49
build_manylinux :
32
50
name : ${{ matrix.policy }}_${{ matrix.platform }}
33
- runs-on : ubuntu-22.04
51
+ needs : build_matrix
52
+ runs-on : ${{ matrix.runner }}
34
53
permissions :
35
54
actions : write # this permission is needed to delete cache
36
55
strategy :
37
56
fail-fast : false
38
57
matrix :
39
- policy : ["manylinux2014", "manylinux_2_28", "manylinux_2_34", "musllinux_1_2"]
40
- platform : ["x86_64"]
41
- include :
42
- - policy : " manylinux2014"
43
- platform : " i686"
44
- - policy : " musllinux_1_2"
45
- platform : " i686"
58
+ include : ${{ fromJson(needs.build_matrix.outputs.matrix) }}
46
59
env :
47
60
POLICY : ${{ matrix.policy }}
48
61
PLATFORM : ${{ matrix.platform }}
0 commit comments