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

[EXPERIMENT] Using Github Artifact Store to store build artifacts #1810

Draft
wants to merge 30 commits into
base: branch-25.04
Choose a base branch
from

Conversation

VenkateshJaya
Copy link

@VenkateshJaya VenkateshJaya commented Feb 3, 2025

Description

Exploring the usage of Github Artifact store in place of downloads.rapids.ai, see rapidsai/ops#2982

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

Copy link

copy-pr-bot bot commented Feb 3, 2025

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@VenkateshJaya VenkateshJaya deleted the test-github-artifacts branch February 3, 2025 19:44
@VenkateshJaya VenkateshJaya reopened this Feb 3, 2025
Copy link

copy-pr-bot bot commented Feb 3, 2025

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@VenkateshJaya VenkateshJaya added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change DO NOT MERGE Hold off on merging; see PR for details and removed DO NOT MERGE Hold off on merging; see PR for details labels Feb 3, 2025
@VenkateshJaya
Copy link
Author

/ok to test

@VenkateshJaya
Copy link
Author

/ok to test

@github-actions github-actions bot added the ci label Feb 5, 2025
@VenkateshJaya
Copy link
Author

/ok to test

@VenkateshJaya
Copy link
Author

/ok to test

@VenkateshJaya
Copy link
Author

/ok to test

@VenkateshJaya
Copy link
Author

/ok to test

gforsyth and others added 2 commits February 11, 2025 12:44
Fixes `build_type` input not being used in `test` workflows. See
rapidsai#1811 (comment).
bdice and others added 6 commits February 11, 2025 14:35
This completes the migration to NVKS runners now that all libraries have been tested and rapidsai/shared-workflows#273 has been merged.

xref: rapidsai/build-infra#184

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - James Lamb (https://github.com/jameslamb)

URL: rapidsai#1816
This change helps completely insulate rmm (and transitively) the rest of RAPIDS from fmt and spdlog as dependencies, thereby solving a large number of issues around ABI stability, symbol visibility, package clobbering, and more. See rapidsai/build-planning#104 for more information.

Authors:
  - Vyas Ramasubramani (https://github.com/vyasr)

Approvers:
  - Matthew Murray (https://github.com/Matt711)
  - Bradley Dice (https://github.com/bdice)
  - James Lamb (https://github.com/jameslamb)

URL: rapidsai#1808
…#1809)

A pair of doxygen comments in `host_memory_resource` referenced `device_memory_resource` when it didn't mean to, very likely a simple copy/paste issue.

rapidsai#1794

Authors:
  - Nicholas Sielicki (https://github.com/aws-nslick)
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - Bradley Dice (https://github.com/bdice)

URL: rapidsai#1809
This is a cleanup PR. I found that we were extraneously including `<thrust/optional.h>` in the pool memory resource (also `thrust::optional` is deprecated in favor of `cuda::std::optional` in the upcoming major release of CCCL). I did a pass with IWYU to see what else could be fixed. IWYU could only really analyze our tests, since RMM is header-only. There are a lot of false positives/negatives, so I don't think it is appropriate to automate IWYU in our CI. However, this felt valuable enough to open a refactoring PR.

I also updated some deprecated GTest code which was using `TYPED_TEST_CASE` instead of `TYPED_TEST_SUITE` and replaced some uses of `::value` with the corresponding `_v` STL features.

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - Lawrence Mitchell (https://github.com/wence-)

URL: rapidsai#1821
@github-actions github-actions bot added CMake Python Related to RMM Python API conda cpp Pertains to C++ code labels Feb 11, 2025
vyasr and others added 3 commits February 11, 2025 15:28
This change helps completely insulate rmm (and transitively) the rest of RAPIDS from fmt and spdlog as dependencies, thereby solving a large number of issues around ABI stability, symbol visibility, package clobbering, and more. See rapidsai/build-planning#104 for more information.

Authors:
  - Vyas Ramasubramani (https://github.com/vyasr)

Approvers:
  - Matthew Murray (https://github.com/Matt711)
  - Bradley Dice (https://github.com/bdice)
  - James Lamb (https://github.com/jameslamb)

URL: rapidsai#1808
@github-actions github-actions bot removed CMake Python Related to RMM Python API conda cpp Pertains to C++ code labels Feb 11, 2025
@VenkateshJaya
Copy link
Author

/ok to test

VenkateshJaya and others added 5 commits February 18, 2025 10:04
Summary:

- We use the [multi-output cache](https://rattler.build/latest/multiple_output_cache/) to avoid double-compiling. The `build` environment compiles things, the individual outputs call `cmake --install`
- We make use of the built-in `git` functions for grabbing the short-SHA (https://rattler.build/latest/experimental_features/#git-functions)
- We use `load_from_file` to pull in metadata from the corresponding `pyproject.toml` (https://rattler.build/latest/experimental_features/#load_from_filefile_path)
- Relatively "simple" `*_build.sh` scripts are inlined into `recipe.yaml` instead of existing as separate files

- We use `--no-build-id` to allow `sccache` to look in a predictable place, see: https://rattler.build/latest/tips_and_tricks/#using-sccache-or-ccache-with-rattler-build
- Depending on whether `rapids-is-release-build`, we include either `rapidsai` (release) or `rapidsai-nightly` (non-release) in the channel listing
- Channels must be specified at the command-line
  - This uses https://github.com/rapidsai/gha-tools/blob/main/tools/rapids-rattler-channel-string to generate an array of channels
- We remove the `build_cache` directory after building so it doesn't get packaged up with the other artifacts and uploaded to S3

xref: rapidsai/build-planning#47

Authors:
  - Gil Forsyth (https://github.com/gforsyth)

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

URL: rapidsai#1796
@github-actions github-actions bot added Python Related to RMM Python API conda labels Feb 19, 2025
@github-actions github-actions bot removed Python Related to RMM Python API conda labels Feb 19, 2025
@@ -4,24 +4,21 @@
set -euo pipefail

package_dir="python/librmm"
wheel_dir=${RAPIDS_WHEEL_DIR:-"dist"}
Copy link
Contributor

@bdice bdice Feb 19, 2025

Choose a reason for hiding this comment

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

Maybe set RAPIDS_WHEEL_DIR to some fixed path like /tmp/wheelhouse so we have a known name.

Copy link
Contributor

Choose a reason for hiding this comment

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

We can define RAPIDS_WHEEL_OUTPUT_DIR in the CI images. Match the naming we use for conda.

@@ -14,7 +15,7 @@ rapids-generate-version > ./VERSION
pushd "${package_dir}"

RAPIDS_PY_CUDA_SUFFIX=$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")
CPP_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="rmm_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-s3 cpp /tmp/librmm_dist)
CPP_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="rmm_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp)
Copy link
Contributor

Choose a reason for hiding this comment

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

Please verify if GitHub artifacts can be downloaded from the CLI without a GitHub token.

Copy link
Contributor

Choose a reason for hiding this comment

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

It looks like no, this is not possible.

There is discussion here: actions/upload-artifact#51

And a possible solution: https://nightly.link/

Copy link
Contributor

@bdice bdice Feb 19, 2025

Choose a reason for hiding this comment

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

Let's figure out how rapids-download-wheels-from-github behaves for users with no token / in a non-interactive shell. We need to be sure that it prompts for auth or errors cleanly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci improvement Improvement / enhancement to an existing function non-breaking Non-breaking change
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

7 participants