@@ -35,20 +35,20 @@ jobs:
3535 steps :
3636 - id : matrix
3737 name : build matrix
38+ shell : python
3839 run : |
39- jq --version
40- QUERY='reduce .[] as $platform ([]; . += reduce $platform.policies.[] as $policy ([];. += [{policy: $policy, platform: $platform.platform, runner: $platform.runner}]))'
41- echo "${QUERY}"
42- JSON=$(cat << EOF | jq -c "${QUERY}"
43- [
44- {"platform": "x86_64", "runner": "ubuntu-22.04", "policies": ["manylinux2014", "manylinux_2_28", "manylinux_2_34", "musllinux_1_2"]},
45- {"platform": "aarch64", "runner": "ubuntu-22.04", "policies": ["manylinux2014", "manylinux_2_28", "manylinux_2_34", "musllinux_1_2"]},
46- {"platform": "i686", "runner": "ubuntu-22.04", "policies": ["manylinux2014", "musllinux_1_2"]},
47- {"platform": "armv7l", "runner": "ubuntu-22.04", "policies": ["manylinux_2_31", "musllinux_1_2"]}
40+ import os
41+ import json
42+ reduced = [
43+ ("x86_64", "ubuntu-22.04", ("manylinux2014", "manylinux_2_28", "manylinux_2_34", "musllinux_1_2")),
44+ ("aarch64", "ubuntu-22.04", ("manylinux2014", "manylinux_2_28", "manylinux_2_34", "musllinux_1_2")),
45+ ("i686", "ubuntu-22.04", ("manylinux2014", "musllinux_1_2")),
46+ ("armv7l", "ubuntu-22.04", ("manylinux_2_31", "musllinux_1_2")),
4847 ]
49- EOF
50- )
51- echo "matrix=${JSON}" >> $GITHUB_OUTPUT
48+ expanded = [{"policy": policy, "platform": platform, "runner": runner} for platform, runner, policies in reduced for policy in policies]
49+ print(json.dumps(expanded, indent=2))
50+ with open(os.environ["GITHUB_OUTPUT"], "at") as f:
51+ f.write(f"matrix={json.dumps(expanded)}")
5252
5353 build_manylinux :
5454 name : ${{ matrix.policy }}_${{ matrix.platform }}
0 commit comments