-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Fix #16028 and #12647: Cache pip dependencies and make E2E tests use shared webpack build #16629
Conversation
This reverts commit 11bf75a.
Hi @U8NWXD, can you complete the following:
|
@U8NWXD Steps 3 and 4 of this comment are now done! However, I have two questions: (a) In step 3, "collections" is included twice. Does there mean that there should be 42 workflows added, or that there should still be 43 because one of them is mistyped? (I've only added 42 so far.) (b) In step 4, am I correct that Thanks! |
a) Oops, collections should only appear once. I'll open a PR to remove the duplicate entry. b) Yes, please leave |
Opened #16645 to remove the duplicate |
…shared webpack build (#16629) * Enable pip caching on lint.yml as a test * Pass build files between workflow jobs * Zip build files before uploading * For testing, delete e2e workflows not being developed currently * Fix artifacts upload path * Add commands to debug build_files.zip location * Add ls -la debugging * Add cd that I accidentally removed * Use working-directory instead of cd * Specify shell * Update download path to be parent folder * Add debugging ls -la statements * Fix zip to add files recursively * Add webpack bundles to artifact * Include more build files in artifact, incl. app.yaml * Remove comments and line breaks from zip command * Preserve symlinks when zipping * Include backend_prod_files/ in zip * Implement strategy matrix for e2e tests * Rename e2e workflow yaml now that we only have one * Remove colon from name * Revert "For testing, delete e2e workflows not being developed currently" This reverts commit 11bf75a. * Delete old e2e workflows * Fix e2e captured in CI check * Fix check_e2e_tests_are_captured_in_ci tests
Overview
Essential Checklist
Work remaining:
job
section in the workflow file. This will cut down on code duplication and let us run every e2e suite as its own job.Proof that changes are correct
Proof that pip caching works
In the CI runs on this PR (example) we load pip-tools from the cache:
In contrast, in a CI run from develop (example), we download pip-tools:
Proof that third-party dependencies transfer
Notice that in this CI run the install-oppia-dependencies step takes only ~2 mins instead of the usual ~4 mins. This speed-up is because third-party dependencies like the google cloud SDK don't have to be downloaded--they were loaded from the zip file.
Proof that upload/download is worthwhile
Comparing this new CI run to an old run we can see the impact of these changes on overall runtime. Note that we previously had 17 E2E test workflows, and we have 43 E2E test suites.
Therefore even though we spin up more jobs with this approach and transfering build files as an artifact takes time, the benefits from only having to download dependencies and build webpack once mean that this transition will save us time overall.
Proof that all tests work
See CI runs: https://github.com/U8NWXD/oppia/actions/runs/3545519837
PR Pointers