Skip to content
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

Backport GHA fixes and optimizations to 22.x #11944

Merged
merged 13 commits into from
Feb 14, 2023
Merged

Conversation

mkruskal-google
Copy link
Member

This should be merged not squashed

mkruskal-google and others added 13 commits February 14, 2023 11:37
PiperOrigin-RevId: 508701071
Changes to these files *can't* be tested in forked PRs, so we should explicitly block them with an error message to explain why.

PiperOrigin-RevId: 508701535
PiperOrigin-RevId: 508720169
Use the bash GHA to ensure WKTs are current, and then just directly invoke
Xcode. This means the script full_mac_build.sh can go back to just being
a simpler helper for folks doing local builds and we can remove all the extra
support that was needed for CI.

PiperOrigin-RevId: 508762464
These will still use MSVC as the compiler, but will no longer generate Visual Studio projects for the builds.  Visual Studio is particularly bad at parallelizing builds, and is hostile to ccache.

This change also tweaks the ccache setup to prevent unbounded the growth observed in our github caches.  Windows builds have had debug symbols stripped to reduce ccache size by a factor of 2x, and ccache maximum have been tweaked so that we persist fewer older builds.

Before this change, each CMake build took 12 minutes on every run (plus some constant overhead from staleness/gcloud), even with caching or on large multi-core runners.  No amount of caching or parallelization made any noticeable difference above noise.  With this change, we see the following improvements:
- 12 minutes to build from scratch on normal runners (unchanged)
- 4 minutes on 32-core runners from scratch
- 1 minute with optimal caches available on normal runners.
- 30 seconds on 32-core runners with optimal caches

PiperOrigin-RevId: 508799909
Placing it in the .github directory unexpectedly replaced our top-level documentation on the main page.

PiperOrigin-RevId: 509104326
Both 'schedule' and 'workflow_dispatch' are valid alternatives today.  What we really want here is anything *except* pull request events.

PiperOrigin-RevId: 509123777
PiperOrigin-RevId: 509260795
PiperOrigin-RevId: 509546035
@mkruskal-google mkruskal-google added release notes: no back-port Cherrypick PRs to release branches labels Feb 14, 2023
@mkruskal-google mkruskal-google merged commit b7f7171 into 22.x Feb 14, 2023
@zhangskz zhangskz deleted the gha-port-22.x branch February 15, 2023 19:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
back-port Cherrypick PRs to release branches
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants