@@ -11,8 +11,10 @@ concurrency:
1111
1212jobs :
1313 build :
14- name : ${{ matrix.image }}
14+ name : ${{ matrix.image }}${{ matrix.split && format(' {0}', matrix.split) }}
1515 runs-on : ${{ matrix.os }}
16+ env :
17+ SPLIT_COUNT : 4
1618 strategy :
1719 fail-fast : false
1820 matrix :
@@ -34,11 +36,24 @@ jobs:
3436 - " fedora-44-amd64"
3537 - " gentoo"
3638 - " ubuntu-24.04-noble-amd64"
37- - " ubuntu-24.04-noble-amd64-valgrind"
3839 - " ubuntu-26.04-resolute-amd64"
3940 # has a dependency on the test image
4041 - " manylinux_2_28-wheel-build"
4142 include :
43+ # The valgrind suite is slow, so split it across parallel jobs.
44+ # Keep the SPLIT_COUNT env var equal to the number of entries here.
45+ - image : " ubuntu-24.04-noble-amd64-valgrind"
46+ os : " ubuntu-latest"
47+ split : 1
48+ - image : " ubuntu-24.04-noble-amd64-valgrind"
49+ os : " ubuntu-latest"
50+ split : 2
51+ - image : " ubuntu-24.04-noble-amd64-valgrind"
52+ os : " ubuntu-latest"
53+ split : 3
54+ - image : " ubuntu-24.04-noble-amd64-valgrind"
55+ os : " ubuntu-latest"
56+ split : 4
4257 - image : " manylinux_2_28-wheel-build"
4358 test-image : " fedora-43-amd64"
4459 - image : " ubuntu-26.04-resolute-ppc64le"
@@ -101,6 +116,7 @@ jobs:
101116 make test BRANCH=main
102117 env :
103118 DOCKER_USERNAME : ${{ secrets.DOCKER_USERNAME }}
119+ SPLIT_INDEX : ${{ matrix.split }}
104120
105121 - name : Log image size
106122 run : |
0 commit comments