Skip to content

Group tests and execute groups in parallel#225

Merged
bobvanderlinden merged 4 commits into
masterfrom
gha-parallel
Apr 15, 2026
Merged

Group tests and execute groups in parallel#225
bobvanderlinden merged 4 commits into
masterfrom
gha-parallel

Conversation

@bobvanderlinden
Copy link
Copy Markdown
Owner

Currently CI sometimes needs to build all ruby versions when a global change is made. This takes 6h+, which is over the GHA limit. The timed out build doesn't get pushed, so none of the internal builds of Ruby are being cached.

It would be nice if we could execute the build without hitting a GHA timeout. We can create a job per ruby version so that GHA will run many builds in parallel, each a normal amount of time and the 6h limit isn't hit.

I've split up the tests into 'groups'. Each ruby version is a group and there is an additional group for 'common' tests. The groups are being read in GHA and a matrix strategy, which is filled with all groups. Then all tests within each group is build within a separate job using the additional 'all' test, which is basically a linkFarm of the other tests in the group.

Currently we're not able to require all tests ran in branch protection
rules. This is because the build matrix is dynamic and the branch
protection rules would need to be kept in sync with the ruby versions.

Instead, we're introducing a job that checks whether all matrix jobs
have succeeded. The branch protection requirement can depend on this
singular job.
@bobvanderlinden bobvanderlinden merged commit 6d63c84 into master Apr 15, 2026
153 checks passed
@bobvanderlinden bobvanderlinden deleted the gha-parallel branch April 15, 2026 19:24
bobvanderlinden added a commit that referenced this pull request Apr 15, 2026
Duplicate of #212 but updated to use parallel CI from #225, so that
builds won't timeout on GHA.

Closes #212 
Closes #221
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant