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

Speed up CI #3353

Merged
merged 234 commits into from
Jan 2, 2023
Merged

Speed up CI #3353

merged 234 commits into from
Jan 2, 2023

Conversation

fschutt
Copy link
Contributor

@fschutt fschutt commented Nov 22, 2022

Work in progress PR to get the CI runs to be more manageable

Goals:

  • migrate from bash / python scripts to cargo xtask to be able to use Rust to script the CI for reproducability
  • add more [jobs] to be able to run multiple CI steps in parallel
  • Reduce CI times to 20 minutes or less, not 1h 30min

@fschutt fschutt requested a review from syrusakbary as a code owner November 23, 2022 12:18
Copy link
Member

@syrusakbary syrusakbary left a comment

Choose a reason for hiding this comment

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

As we chatted, let's keep xtask/makefile completely separated from the PR.
This PR should mainly focus on improving the speed of CI

@fschutt fschutt force-pushed the fast-ci branch 2 times, most recently from d0cf753 to 117484e Compare November 27, 2022 22:13
.github/workflows/test.yaml Outdated Show resolved Hide resolved
.github/workflows/test.yaml Outdated Show resolved Hide resolved
.github/workflows/test.yaml Outdated Show resolved Hide resolved
.github/workflows/test.yaml Outdated Show resolved Hide resolved
.github/workflows/test.yaml Outdated Show resolved Hide resolved
@fschutt fschutt force-pushed the fast-ci branch 2 times, most recently from 3133e06 to 257477c Compare November 29, 2022 21:38
@fschutt
Copy link
Contributor Author

fschutt commented Nov 30, 2022

Results:

  • parallelization: done
  • sccache: -10 minutes, should be kept
  • GitHub cache: obligatory speedup of ~20 minutes, should be kept
  • wasmer fails to run on windows-latest, but not on windows-2019
  • 8 cores: 2x speedup, but macos is the blocking part since we don't have 8-core runners, but we get faster failures
  • cannot upgrade to macos-12, sadly
  • bors: will only speed up merging, not being run in CI, removed for now since we can use GitHub auto-merge

Best Run: 35 minutes with 8 cores, sccache + GitHub cache

Copy link
Member

@syrusakbary syrusakbary left a comment

Choose a reason for hiding this comment

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

Test C-API once build C-API is done should be close to instant (or very fast).

Right now is recompiling the c-api somehow? We should not do that

Also, the build c-api on windows should be part of the build matrix

Screenshot 2022-12-19 at 10 36 45 AM

@fschutt
Copy link
Contributor Author

fschutt commented Dec 20, 2022

Okay so since the last signoff there were a couple of changes:

  • Linking the CRT statically on Windows caused the tests to recompile, even if the feature-flags were the same.
  • build-capi-windows-gnu is now part of the build matrix
  • tried to cache the windows-x64 build, but failed
  • fixed all caches, but R2 is often times locking up and taking 30mins to just retrieve the cache. I'd like to test later on with S3 instead of R2, but for now it's good enough
  • upgraded to ubuntu-22.04 to avoid GitHub brownouts of ubuntu-18.04

Copy link
Member

@syrusakbary syrusakbary left a comment

Choose a reason for hiding this comment

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

There's something clearly wrong with the cache here:

https://github.com/wasmerio/wasmer/actions/runs/3741028179/jobs/6350105848

@fschutt
Copy link
Contributor Author

fschutt commented Dec 20, 2022

@syrusakbary Yes, I know, but I can't do anything about it, I just call the GH action with the proper parameters. If R2 decides to lock up, that's not really something I can debug. I can only try to use S3 to compare the reliability against R2.

@fschutt
Copy link
Contributor Author

fschutt commented Dec 21, 2022

I'm currently blocked because I can't create an AWS account because I lost my 2FA access to my bank account. I can get it back, but only after the Dec 25th. Sorry :/

Copy link
Member

@syrusakbary syrusakbary left a comment

Choose a reason for hiding this comment

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

Can we add integration tests on the steps defined here making sure that everything works as we laid out? (both for the wasm case and the webc case)

#3436 (comment)

@fschutt fschutt enabled auto-merge December 30, 2022 14:42
@theduke theduke dismissed syrusakbary’s stale review January 2, 2023 07:21

Should be done.

@fschutt fschutt merged commit 30f0183 into master Jan 2, 2023
@fschutt fschutt deleted the fast-ci branch January 2, 2023 07:23
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.

4 participants