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

Split raiwidgets/e2e-notebooks test pipeline in two #1478

Merged
merged 21 commits into from
Jun 16, 2022

Conversation

romanlutz
Copy link
Contributor

@romanlutz romanlutz commented Jun 9, 2022

Description

The existing pipeline .github\workflows\Ci-raiwigets-python-typescript.yml serves two distinct purposes:

  • running raiwidgets tests (pytest)
  • running e2e notebook tests
    They are in one pipeline since they both require yarn install, yarn buildall, and the subsequent installation of raiwidgets. However, this pipeline has become the most time-consuming of all of our pipelines and it will only get worse in the future as we add more notebooks and more test cases. For that reason, this PR splits them into two and prunes unnecessary steps (e.g., installing torch for the pytest tests). The e2e-notebook pipeline isn't run on macos-latest which also removed a lot of custom parts. So far, this was just handled via if statements.

Beyond that, the e2e-notebook pipeline is also broken down into each individual notebook using the matrix strategy. This required extending e2e-widget.js to take additional input params -n for the notebook name and --skipgen to skip notebook generation which considerably speeds up the local test iterations. In this new setup, the notebook names need to match the test folders so I renamed some of the test folders to match the notebook names.

Furthermore, this now does yarn install and yarn buildall in a single workflow, stores the output as an artifact and installs raiwidgets using this artifact in the individual workflows. This means we're running the yarn buildall part only once instead of n times. It often takes up to 30 minutes for just that part, so the savings should be considerable.

This change was originally part of #1462 but the PR got too big. In that PR, I'm adding e2e notebook tests for flighted versions of our dashboard. This alone doubles the test suite and made it run out of memory on the node that ran it. Splitting it up was the reasonable adjustment, but we felt like it makes sense to go a step further as we'll be adding more notebooks in the future (presumably).

Checklist

  • I have added screenshots above for all UI changes.
  • I have added e2e tests for all UI changes.
  • Documentation was updated if it was needed.

@codecov-commenter
Copy link

codecov-commenter commented Jun 9, 2022

Codecov Report

Merging #1478 (28c5c10) into main (c062d0d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #1478   +/-   ##
=======================================
  Coverage   87.56%   87.56%           
=======================================
  Files         108      108           
  Lines        5081     5081           
=======================================
  Hits         4449     4449           
  Misses        632      632           
Flag Coverage Δ
unittests 87.56% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.


Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c062d0d...28c5c10. Read the comment docs.

2 similar comments
1 similar comment
scripts/e2e-widget.js Show resolved Hide resolved
scripts/e2e-widget.js Show resolved Hide resolved
.github/workflows/CI-raiwidgets-pytest.yml Show resolved Hide resolved
@romanlutz romanlutz enabled auto-merge (squash) June 15, 2022 19:25
@romanlutz romanlutz disabled auto-merge June 16, 2022 01:03
@romanlutz romanlutz merged commit 75afdc5 into main Jun 16, 2022
@romanlutz romanlutz deleted the romanlutz/split_pipeline branch June 16, 2022 01:04
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.

6 participants