@@ -28,21 +28,34 @@ concurrency:
2828 cancel-in-progress : true
2929
3030jobs :
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+
3149 build_manylinux :
3250 name : ${{ matrix.policy }}_${{ matrix.platform }}
33- runs-on : ubuntu-22.04
51+ needs : build_matrix
52+ runs-on : ${{ matrix.runner }}
3453 permissions :
3554 actions : write # this permission is needed to delete cache
3655 strategy :
3756 fail-fast : false
3857 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) }}
4659 env :
4760 POLICY : ${{ matrix.policy }}
4861 PLATFORM : ${{ matrix.platform }}
0 commit comments