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

Implement judicious skipping of CI jobs #94

Open
vyasr opened this issue Aug 21, 2024 · 2 comments
Open

Implement judicious skipping of CI jobs #94

vyasr opened this issue Aug 21, 2024 · 2 comments
Assignees

Comments

@vyasr
Copy link
Contributor

vyasr commented Aug 21, 2024

Currently any change to any RAPIDS repo triggers a complete run of the entire build and test suite of CI jobs. This is very expensive, and is often unnecessary. RAPIDS libraries are typically structured such that they have a clear, linear dependency chain between different components. Some examples:

  • Changes to Python code should have no effect whatsoever on C++ testing
  • For repositories that publish multiple Python packages, there is typically a linear dependency between at least some of these such that changes to downstream packages has no effect on the tests of upstream package (e.g. changes to cugraph would not affect pylibcugraph tests).
  • Changes to documentation should only require documentation rebuilds, no test runs.

We can reduce the number of unnecessary jobs that we run in CI by more judiciously skipping jobs that are unnecessary. The simplest approach to do this is by simply checking what files have changed. We have previously implemented a form of this in cudf for both cudf.pandas and now for cudf-polars. To do this, I would propose the following steps:

  • Generalizing the above logic for detecting changes into a shared workflow
  • Enable filtering jobs using the above shared workflow
  • Generalize the pr-builder job to allow some jobs to be skipped under appropriate circumstances.
@KyleFromNVIDIA
Copy link
Contributor

pytest-incremental may help us with skipping unneeded Python tests:

https://pypi.org/project/pytest-incremental/

It hasn't been updated in a while though, it may need some work.

KyleFromNVIDIA added a commit to KyleFromNVIDIA/cudf that referenced this issue Aug 22, 2024
Only run tests based on things that have actually changed. For
example, if only Python files have changed, we don't need to run
the C++ tests.

Contributes to rapidsai/build-planning#94
rapids-bot bot pushed a commit to rapidsai/cudf that referenced this issue Aug 27, 2024
Only run tests based on things that have actually changed. For example, if only Python files have changed, we don't need to run the C++ tests.

Contributes to rapidsai/build-planning#94

Authors:
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)

Approvers:
  - Bradley Dice (https://github.com/bdice)
  - Vyas Ramasubramani (https://github.com/vyasr)
  - Robert Maynard (https://github.com/robertmaynard)

URL: #16642
KyleFromNVIDIA added a commit to KyleFromNVIDIA/cugraph that referenced this issue Aug 27, 2024
Only run tests based on things that have actually changed. For
example, if only Python files have changed, we don't need to run
the C++ tests.

Contributes to rapidsai/build-planning#94
rapids-bot bot pushed a commit to rapidsai/cudf that referenced this issue Sep 26, 2024
copy-pr-bot bot pushed a commit to rapidsai/cudf that referenced this issue Sep 28, 2024
rapids-bot bot pushed a commit to rapidsai/cugraph that referenced this issue Oct 1, 2024
Only run tests based on things that have actually changed. For example, if only Python files have changed, we don't need to run the C++ tests.

Contributes to rapidsai/build-planning#94

Depends on rapidsai/shared-workflows#239

Authors:
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)

Approvers:
  - Robert Maynard (https://github.com/robertmaynard)
  - Jake Awe (https://github.com/AyodeAwe)

URL: #4634
@vyasr
Copy link
Contributor Author

vyasr commented Oct 1, 2024

@KyleFromNVIDIA now that we have a common shared workflow and about a month of data on how pruning the jobs works, do we want to roll this feature out to the rest of RAPIDS and then close this issue?

KyleFromNVIDIA added a commit to KyleFromNVIDIA/cuml that referenced this issue Oct 3, 2024
KyleFromNVIDIA added a commit to KyleFromNVIDIA/raft that referenced this issue Oct 3, 2024
rapids-bot bot pushed a commit to rapidsai/cuml that referenced this issue Oct 3, 2024
KyleFromNVIDIA added a commit to KyleFromNVIDIA/kvikio that referenced this issue Oct 3, 2024
KyleFromNVIDIA added a commit to KyleFromNVIDIA/cuvs that referenced this issue Oct 3, 2024
rapids-bot bot pushed a commit to rapidsai/raft that referenced this issue Oct 4, 2024
rapids-bot bot pushed a commit to rapidsai/cuvs that referenced this issue Oct 4, 2024
KyleFromNVIDIA added a commit to KyleFromNVIDIA/ucxx that referenced this issue Oct 4, 2024
KyleFromNVIDIA added a commit to KyleFromNVIDIA/cuxfilter that referenced this issue Oct 4, 2024
KyleFromNVIDIA added a commit to KyleFromNVIDIA/rmm that referenced this issue Oct 4, 2024
KyleFromNVIDIA added a commit to KyleFromNVIDIA/wholegraph that referenced this issue Oct 4, 2024
rapids-bot bot pushed a commit to rapidsai/rmm that referenced this issue Oct 4, 2024
rapids-bot bot pushed a commit to rapidsai/cuxfilter that referenced this issue Oct 4, 2024
rapids-bot bot pushed a commit to rapidsai/wholegraph that referenced this issue Oct 4, 2024
rapids-bot bot pushed a commit to rapidsai/ucxx that referenced this issue Oct 4, 2024
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

No branches or pull requests

2 participants