Copy in relevant workflows #11
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: pr | |
on: | |
push: | |
branches: | |
- "pull-request/[0-9]+" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} | |
cancel-in-progress: true | |
# TODO: I would love to not need RAPIDS shared workflows for these builds, but | |
# for getting things stood up quickly that's the fastest route. | |
jobs: | |
compute-build-matrix: | |
runs-on: ubuntu-latest | |
outputs: | |
MATRIX: ${{ steps.compute-matrix.outputs.MATRIX }} | |
steps: | |
- name: Compute Build Matrix | |
id: compute-matrix | |
run: | | |
set -eo pipefail | |
export MATRIX=" | |
# amd64 | |
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } | |
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8' } | |
# arm64 | |
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } | |
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8' } | |
" | |
MATRIX="$( | |
yq -n -o json 'env(MATRIX)' | \ | |
)" | |
echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}" | |
build: | |
name: ${{ matrix.CUDA_VER }}, ${{ matrix.ARCH }}, ${{ matrix.LINUX_VER }} | |
needs: compute-build-matrix | |
strategy: | |
matrix: ${{ fromJSON(needs.compute-matrix.outputs.MATRIX) }} | |
runs-on: "linux-${{ matrix.ARCH }}-${{ inputs.node_type }}" | |
env: | |
RAPIDS_ARTIFACTS_DIR: ${{ github.workspace }}/artifacts | |
container: | |
image: "rapidsai/ci-wheel:cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}" | |
env: | |
RAPIDS_BUILD_TYPE: ${{ inputs.build_type }} | |
steps: | |
- uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: ${{ vars.AWS_ROLE_ARN }} | |
aws-region: ${{ vars.AWS_REGION }} | |
role-duration-seconds: 43200 # 12h | |
- name: checkout code repo | |
uses: actions/checkout@v4 | |
env: | |
GIT_TRACE_PACKET: 1 | |
GIT_TRACE: 1 | |
GIT_CURL_VERBOSE: 1 | |
with: | |
repository: ${{ inputs.repo }} | |
ref: ${{ inputs.sha }} | |
fetch-depth: 0 # unshallow fetch for setuptools-scm | |
persist-credentials: false | |
- name: Standardize repository information | |
uses: rapidsai/shared-actions/rapids-github-info@main | |
with: | |
repo: ${{ inputs.repo }} | |
branch: ${{ inputs.branch }} | |
date: ${{ inputs.date }} | |
sha: ${{ inputs.sha }} | |
- name: Build and repair the wheel | |
run: ci/build_wheel.sh | |
env: | |
GH_TOKEN: ${{ github.token }} | |
# Use a shell that loads the rc file so that we get the compiler settings | |
shell: bash -leo pipefail {0} | |
compute-test-matrix: | |
needs: build | |
runs-on: ubuntu-latest | |
outputs: | |
MATRIX: ${{ steps.compute-matrix.outputs.MATRIX }} | |
steps: | |
- name: Compute test matrix | |
id: compute-matrix | |
run: | | |
set -eo pipefail | |
# please keep the matrices sorted in ascending order by the following: | |
# | |
# [ARCH, PY_VER, CUDA_VER, LINUX_VER, GPU, DRIVER] | |
# | |
export MATRICES=" | |
# amd64 | |
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu20.04', gpu: 'a100', driver: 'latest' } | |
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu22.04', gpu: 'a100', driver: 'latest' } | |
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu20.04', gpu: 'a100', driver: 'latest' } | |
# arm64 | |
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', gpu: 'a100', driver: 'latest' } | |
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', gpu: 'a100', driver: 'latest' } | |
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04', gpu: 'a100', driver: 'latest' } | |
" | |
TEST_MATRIX=$(yq -n 'env(MATRICES)') | |
export TEST_MATRIX | |
MATRIX="$( | |
yq -n -o json 'env(TEST_MATRIX)' | \ | |
jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end' | |
)" | |
echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}" | |
test: | |
name: ${{ matrix.CUDA_VER }}, ${{ matrix.ARCH }}, ${{ matrix.LINUX_VER }}, ${{ matrix.gpu }} | |
needs: compute-test-matrix | |
env: | |
RAPIDS_TESTS_DIR: ${{ github.workspace }}/test-results | |
RAPIDS_ARTIFACTS_DIR: ${{ github.workspace }}/artifacts | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJSON(needs.compute-matrix.outputs.MATRIX) }} | |
runs-on: "linux-${{ matrix.ARCH }}-gpu-${{ matrix.gpu }}-${{ matrix.driver }}-1" | |
container: | |
image: "rapidsai/citestwheel:cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}" | |
options: ${{ inputs.container-options }} | |
env: | |
NVIDIA_VISIBLE_DEVICES: ${{ env.NVIDIA_VISIBLE_DEVICES }} # GPU jobs must set this container env variable | |
RAPIDS_BUILD_TYPE: ${{ inputs.build_type }} | |
steps: | |
- uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: ${{ vars.AWS_ROLE_ARN }} | |
aws-region: ${{ vars.AWS_REGION }} | |
role-duration-seconds: 43200 # 12h | |
- name: Run nvidia-smi to make sure GPU is working | |
run: nvidia-smi | |
- name: checkout code repo | |
uses: actions/checkout@v4 | |
env: | |
GIT_TRACE_PACKET: 1 | |
GIT_TRACE: 1 | |
GIT_CURL_VERBOSE: 1 | |
with: | |
repository: ${{ inputs.repo }} | |
ref: ${{ inputs.sha }} | |
fetch-depth: 0 # unshallow fetch for setuptools-scm | |
persist-credentials: false | |
- name: Standardize repository information | |
uses: rapidsai/shared-actions/rapids-github-info@main | |
with: | |
repo: ${{ inputs.repo }} | |
branch: ${{ inputs.branch }} | |
date: ${{ inputs.date }} | |
sha: ${{ inputs.sha }} | |
- name: Run tests | |
run: ci/test_wheel.sh | |
env: | |
GH_TOKEN: ${{ github.token }} |