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

ci(perf): Improve job parallelization and disable incremental Rust builds #1110

Merged
merged 2 commits into from
Feb 7, 2023

Conversation

tschneidereit
Copy link
Contributor

This set of changes should hopefully make our CI runs take less time. More importantly, the first one, disabling incremental cargo builds, should also reduce disk usage enough to make Windows tests pass more reliably, and give us a bit more time before we have to move things to another partition ...

Incremental builds aren't useful in CI, because there will never be additional builds in the same environment with only slight changes to code. At the same time, they impose a certain amount of time overhead, and consume lots of disk space. Since we sometimes run out of disk space on GH Actions Windows runners, in particular that latter aspect is relevant here.

Signed-off-by: Till Schneidereit <till@tillschneidereit.net>
The test-rust job doesn't actually require anything from the build-rust job, since it uses debug builds, but the build-rust job builds release ones. Removing this dependency should hopefully improve our wallclock time for CI runs.

Signed-off-by: Till Schneidereit <till@tillschneidereit.net>
Copy link
Contributor

@rajatjindal rajatjindal left a comment

Choose a reason for hiding this comment

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

Thanks Till (probably should wait for review from Danielle also)

@tschneidereit
Copy link
Contributor Author

While this seems like an improvement, it unfortunately doesn't always decrease the wallclock time of CI runs too much: build-rust --> e2e-tests is often the critical path, and that still exists.

We could parallelize the step of building the tests container with build-rust, and/or we can look into making e2e-tests only depend on the Linux build. Unfortunately GH Actions' needs parameter for jobs doesn't allow specifying only some matrix configurations though, so the latter would get somewhat complicated pretty quickly :/

Anyway, this seems like strictly an improvement, so I think landing it for now makes sense :)

@tschneidereit tschneidereit merged commit 048f345 into fermyon:main Feb 7, 2023
@tschneidereit tschneidereit deleted the ci-perf branch February 7, 2023 09:20
@lann
Copy link
Collaborator

lann commented Feb 10, 2023

I believe the Swatinem/rust-cache step does this for you.

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.

None yet

4 participants