Skip to content

ci: Speed up builds with coverage skip and pre-built horovod - #2487

Merged
Brendan Walsh (BrendanWalsh) merged 1 commit into
masterfrom
brwals/build-improvements
Feb 5, 2026
Merged

ci: Speed up builds with coverage skip and pre-built horovod#2487
Brendan Walsh (BrendanWalsh) merged 1 commit into
masterfrom
brwals/build-improvements

Conversation

@BrendanWalsh

Copy link
Copy Markdown
Collaborator

Summary

Two changes to speed up CI builds:

1. Skip coverage on feature branch builds

  • Adds runCoverage variable: only true for PRs, master, or tag builds
  • Conditionally runs sbt coverage, coverageReport, and codecov upload across all test jobs (PythonTests, RTests, WebsiteSamplesTests, UnitTests)
  • Coverage still runs on PRs (for codecov reporting), master, and release tags

2. Pre-built horovod wheel

  • Replaces git+https://github.com/horovod/horovod.git@... with a pre-built wheel hosted on mmlspark blob storage
  • Avoids compiling horovod from source on every build (~60-90s saved per PythonTests job)
  • Built from the same commit (3a31d93) on Ubuntu 22.04 + Python 3.11

Impact

Measured on build 206334248 vs build 206228976 (55 common jobs):

Metric Before After Change
Aggregate job time 1131.8 min 886.4 min -21.7%
Wall clock 72.3 min 34.6 min -52%
Longest job (UnitTests causal) 48.4 min 19.6 min -60%

Test results

54/55 jobs passed. The one failure (UnitTests translate) is a pre-existing issue — the test asserts a specific German translation ("Wiedersehen") but Azure Translator now returns "Tschüss". Unrelated to these changes.

1. Skip coverage on feature branch builds
   - Add runCoverage variable: true only for PRs, master, or tags
   - Apply to all jobs: PythonTests, RTests, WebsiteSamplesTests, UnitTests
   - Conditionally run sbt coverage and coverageReport steps

2. Use pre-built horovod wheel instead of git install
   - Faster CI: avoids compiling horovod from source each time
   - Built from same commit on Ubuntu 22.04 + Python 3.11
@github-actions

github-actions Bot commented Feb 5, 2026

Copy link
Copy Markdown

Hey Brendan Walsh (@BrendanWalsh) 👋!
Thank you so much for contributing to our repository 🙌.
Someone from SynapseML Team will be reviewing this pull request soon.

We use semantic commit messages to streamline the release process.
Before your pull request can be merged, you should make sure your first commit and PR title start with a semantic prefix.
This helps us to create release messages and credit you for your hard work!

Examples of commit messages with semantic prefixes:

  • fix: Fix LightGBM crashes with empty partitions
  • feat: Make HTTP on Spark back-offs configurable
  • docs: Update Spark Serving usage
  • build: Add codecov support
  • perf: improve LightGBM memory usage
  • refactor: make python code generation rely on classes
  • style: Remove nulls from CNTKModel
  • test: Add test coverage for CNTKModel

To test your commit locally, please follow our guild on building from source.
Check out the developer guide for additional guidance on testing your change.

@BrendanWalsh
Brendan Walsh (BrendanWalsh) merged commit e556208 into master Feb 5, 2026
62 of 64 checks passed
@BrendanWalsh
Brendan Walsh (BrendanWalsh) deleted the brwals/build-improvements branch February 5, 2026 22:20
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