Skip to content

Faster CI#3411

Open
Fishbowler wants to merge 2 commits into
igniterealtime:mainfrom
Fishbowler:faster-ci
Open

Faster CI#3411
Fishbowler wants to merge 2 commits into
igniterealtime:mainfrom
Fishbowler:faster-ci

Conversation

@Fishbowler

@Fishbowler Fishbowler commented Jun 28, 2026

Copy link
Copy Markdown
Member
  • Enable multi-threaded builds in maven (speeds up ubuntu builds by ~40%)
  • Split ubuntu build (the one everything else is waiting for) away from slower Windows/macOS builds (saves a pointless ~10m wait)

This gets developer feedback sooner.

@coderabbitai

coderabbitai Bot commented Jun 28, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The CI workflow gains a dedicated build job (ubuntu-latest, JDK 17 zulu) that checks out the repo, builds with Maven (conditionally adding -Pcoverage on main), uploads JUnit test reports, packages and uploads a distribution tarball, uploads JaCoCo coverage for xmppserver on main, and stashes Maven repository artifacts. The build-matrix job loses those upload/stash steps but gains the same conditional -Pcoverage logic. The publish-maven, publish-docker, and build-deb-artifact jobs each add build-matrix to their needs lists.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed The description matches the CI-focused changes, including faster Maven builds and splitting the Ubuntu build from slower platform jobs.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Since Windows and macOS builds are slower, and all tests rely on ubuntu, this enables tests to begin ~10 minutes sooner
@Fishbowler Fishbowler marked this pull request as ready for review June 28, 2026 15:56

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/continuous-integration-workflow.yml:
- Line 1254: The affected workflow jobs currently depend on build-matrix and
related checks but not on build, so they can run before the Linux 17 artifact is
produced. Update the needs lists for the downstream jobs referenced here and in
the other matching workflow entries to include build alongside build-matrix,
ensuring the new build job completes before any job that consumes its output or
downloads the Debian artifact.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 5af34a0e-780c-4039-8ff9-b3c8fec7005c

📥 Commits

Reviewing files that changed from the base of the PR and between a0307b3 and 16df8af.

📒 Files selected for processing (1)
  • .github/workflows/continuous-integration-workflow.yml

Comment thread .github/workflows/continuous-integration-workflow.yml
@guusdk

guusdk commented Jun 29, 2026

Copy link
Copy Markdown
Member

Thanks for this. I think another cause for the slow builds are these changes: d49cce2

I'm not sure if they're still needed, or, if they are, can be made more robust.

@Fishbowler

Copy link
Copy Markdown
Member Author

I'd rather not touch that as part of this. This is entirely GHA shenanigans.
You sound very confident in your commit message 😂

@guusdk

guusdk commented Jul 2, 2026

Copy link
Copy Markdown
Member

I like the idea of splitting the ubuntu/JDK17 build out of the matrix so downstream jobs no longer need to wait for the full matrix to complete, speeding up the entire workflow.

My only concern is that we've now duplicated almost the entire build job. As the workflow evolves, it's almost guaranteed for the two implementations to drift apart.

Could we extract the common build steps into either a reusable workflow or a composite action, and have both build and build-matrix invoke that? That would preserve the optimization, while keeping the build logic defined in one place.

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.

2 participants