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

WIP: Parallelize Continuous Integration test and documentation build #830

Closed
wants to merge 1 commit into from

Conversation

weiji14
Copy link
Member

@weiji14 weiji14 commented Feb 1, 2021

Description of proposed changes

Split the unit tests and documentation build into two separate and parallel paths to reduce total time spent on Continuous Integration. Also only performing documentation build on Python 3.9 only to conserve CI resources. Edit: doesn't work yet...

image

This should save an estimated ~4 min of CI time (the unit tests and docs build take about 4 min respectively, i.e. 8 mins in serial, 4 min in parallel), so the longest running Windows CI should go from ~18min to ~14min.

References:

Part of #584

Reminders

  • Run make format and make check to make sure the code follows the style guide.
  • Add tests for new features or tests that would have caught the bug that you're fixing.
  • Add new public functions/methods/classes to doc/api/index.rst.
  • Write detailed docstrings for all functions/methods.
  • If adding new functionality, add an example to docstrings or tutorials.

Notes

  • You can write /format in the first line of a comment to lint the code automatically

Split the unit tests and documentation build
into two separate and parallel paths to
reduce total time spent on Continuous Integration.
Also only performing documentation build on
Python 3.9 only to conserve CI resources.
@weiji14 weiji14 added the maintenance Boring but important stuff for the core devs label Feb 1, 2021
@weiji14 weiji14 changed the title Parallelize Continuous Integration test and documentation build WIP: Parallelize Continuous Integration test and documentation build Feb 4, 2021
@weiji14
Copy link
Member Author

weiji14 commented Mar 1, 2021

Just resurfacing this comment by Leo from #344 (comment):

We could probably disable those documentation builds in a separate PR to speed them up?

I’m not too keen on that since he docs builds are a sort of test. But to all builds need to do this (probably only one per OS would be good).

And also at #964 (review):

  • Can we set up a matrix build on all 3 OSes in this action? I.e. remove the "Build the documentation" section in ci_tests.yaml and put it here instead.

Rationale: Saves ~4min of CI time. I wanted to separate the tests from the documentation builds in #830, but maybe we can do it in this "Continuous Documentation" workflow instead. I know Leo mentioned using the documentation build as a 'test' before (lazy to dig up that comment), but our >20 min of CI tests is getting wayy too long.

So we should probably run the docs build on only one Python version (e.g. Python 3.9) instead of three (3.7, 3.8, 3.9) to further save on CI resources.

@seisman
Copy link
Member

seisman commented Mar 9, 2021

I agree that we should separate "Building the documentation" and "Full tests" into two separate workflows. We can have faster jobs runs and also can control the jobs runs based on files, e.g., we don't want to run the full tests if only gallery examples are changed.

I also agree that we should only build the documentation for one Python version (e.g., 3.9), not three versions.

@weiji14
Copy link
Member Author

weiji14 commented Mar 15, 2021

Closing in favour of alternative implementation at #1033

@weiji14 weiji14 closed this Mar 15, 2021
@weiji14 weiji14 deleted the parallel_test_and_docs_ci branch March 15, 2021 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance Boring but important stuff for the core devs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants