-
Notifications
You must be signed in to change notification settings - Fork 503
CI: some improvements for faster PR builds #6397
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests.
Additional details and impacted files@@ Coverage Diff @@
## master #6397 +/- ##
==========================================
- Coverage 50.69% 44.33% -6.37%
==========================================
Files 661 654 -7
Lines 110771 110683 -88
==========================================
- Hits 56152 49067 -7085
- Misses 51751 58549 +6798
- Partials 2868 3067 +199 ☔ View full report in Codecov by Sentry. |
e313068
to
bc3f11a
Compare
84a13d0
to
4d99199
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements comprehensive CI optimizations to reduce PR build times by approximately 2x through eliminating the initial build job, removing workspace archiving/downloading, consolidating Go setup, and improving caching strategies.
Key changes include:
- Remove the separate
build
job and ~600MB workspace transfer overhead - Consolidate Go setup and caching into reusable actions
- Split e2e_subs tests into parallel shards and add new build targets
- Implement consistent libsodium caching and remove legacy workarounds
Reviewed Changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
.github/workflows/ci-pr.yml |
Major restructuring - removes build job, adds reusable actions, splits test shards |
.github/actions/setup-go/action.yml |
New reusable action for Go setup with multi-module caching |
.github/actions/setup-test/action.yml |
New reusable action for test environment setup |
.github/actions/slack-notify/action.yml |
New reusable action for Slack notifications |
Makefile |
Adds build-e2e target and libsodium target, removes legacy GOCACHE workaround |
test/scripts/e2e.sh |
Adds support for test suite sharding via E2E_SUBS_TESTSUITE environment variable |
test/scripts/e2e_go_tests.sh |
Adds conditional build logic with NO_BUILD environment variable |
Various workflow files | Updates to use new reusable actions and consistent caching |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you're pedantic, there's a couple make crypto/libs/linux/amd64/lib/libsodium.a
commands in .github/workflows/reviewdog.yml
and one in .github/workflow/tools.yml
but otherwise I think this PR is good.
Summary
gimme
tool to download Go environment (just rely on setup-go action)build
job and workspace archiving + downloading by downstream jobsbuild-e2e
Makefile target for E2E tests to build only the binaries they need (with race detection except kmd).e2e_subs
job into two shards (and verify the shards ran)report
job that puts failed tests into check summaryTest Plan
PR tests finish about 2x faster now without build cache, >2x when build cache sharing is effective.