Merge branch 'branch-25.04' into test-github-artifacts #2
Workflow file for this run
This file contains hidden or 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
| on: | |
| workflow_call: | |
| inputs: | |
| build_type: | |
| required: true | |
| type: string | |
| branch: | |
| type: string | |
| date: | |
| type: string | |
| sha: | |
| type: string | |
| repo: | |
| type: string | |
| script: | |
| type: string | |
| default: "ci/test_cpp.sh" | |
| matrix_filter: | |
| type: string | |
| default: "." | |
| container-options: | |
| required: false | |
| type: string | |
| default: "-e _NOOP" | |
| defaults: | |
| run: | |
| shell: bash | |
| permissions: | |
| actions: read | |
| checks: none | |
| contents: read | |
| deployments: none | |
| discussions: none | |
| id-token: write | |
| issues: none | |
| packages: read | |
| pages: none | |
| pull-requests: read | |
| repository-projects: none | |
| security-events: none | |
| statuses: none | |
| jobs: | |
| compute-matrix: | |
| runs-on: ubuntu-latest | |
| env: | |
| BUILD_TYPE: ${{ inputs.build_type }} | |
| outputs: | |
| MATRIX: ${{ steps.compute-matrix.outputs.MATRIX }} | |
| steps: | |
| - name: Validate Test Type | |
| run: | | |
| if [[ "$BUILD_TYPE" != "pull-request" ]] && [[ "$BUILD_TYPE" != "nightly" ]] && [[ "$BUILD_TYPE" != "branch" ]]; then | |
| echo "Invalid build type! Must be one of 'nightly', 'pull-request', or 'branch'." | |
| exit 1 | |
| fi | |
| - name: Compute C++ 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, DEPENDENCIES] | |
| # | |
| export MATRICES=" | |
| pull-request: | |
| # amd64 | |
| - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'l4', DRIVER: 'earliest', DEPENDENCIES: 'oldest' } | |
| - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.8.0', LINUX_VER: 'ubuntu24.04', GPU: 'l4', DRIVER: 'latest', DEPENDENCIES: 'latest' } | |
| # arm64 | |
| - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } | |
| nightly: | |
| # amd64 | |
| - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.4.3', LINUX_VER: 'rockylinux8', GPU: 'l4', DRIVER: 'earliest', DEPENDENCIES: 'oldest' } | |
| - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu20.04', GPU: 'l4', DRIVER: 'latest', DEPENDENCIES: 'latest' } | |
| - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'rockylinux8', GPU: 'l4', DRIVER: 'latest', DEPENDENCIES: 'latest' } | |
| - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.8.0', LINUX_VER: 'ubuntu24.04', GPU: 'h100', DRIVER: 'latest', DEPENDENCIES: 'latest' } | |
| # arm64 | |
| - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'oldest' } | |
| - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } | |
| - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } | |
| " | |
| # Use the nightly matrix for branch tests | |
| MATRIX_TYPE="${BUILD_TYPE}" | |
| if [[ "${MATRIX_TYPE}" == "branch" ]]; then | |
| MATRIX_TYPE="nightly" | |
| fi | |
| export MATRIX_TYPE | |
| TEST_MATRIX=$(yq -n 'env(MATRICES) | .[strenv(MATRIX_TYPE)]') | |
| 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}" | |
| tests: | |
| name: ${{ matrix.CUDA_VER }}, ${{ matrix.PY_VER }}, ${{ matrix.ARCH }}, ${{ matrix.LINUX_VER }}, ${{ matrix.GPU }}, ${{ matrix.DRIVER }}-driver, ${{ matrix.DEPENDENCIES }}-deps | |
| needs: compute-matrix | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJSON(needs.compute-matrix.outputs.MATRIX) }} | |
| runs-on: "linux-${{ matrix.ARCH }}-gpu-${{ matrix.GPU }}-${{ matrix.DRIVER }}-1" | |
| env: | |
| RAPIDS_ARTIFACTS_DIR: ${{ github.workspace }}/artifacts | |
| RAPIDS_DEPENDENCIES: ${{ matrix.DEPENDENCIES }} | |
| RAPIDS_TESTS_DIR: ${{ github.workspace }}/test-results | |
| container: | |
| image: rapidsai/ci-conda:cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }} | |
| options: ${{ inputs.container-options }} | |
| env: | |
| RAPIDS_BUILD_TYPE: ${{ inputs.build_type }} | |
| NVIDIA_VISIBLE_DEVICES: ${{ env.NVIDIA_VISIBLE_DEVICES }} | |
| steps: | |
| - name: Telemetry setup | |
| uses: rapidsai/shared-actions/telemetry-dispatch-setup@main | |
| continue-on-error: true | |
| if: ${{ vars.TELEMETRY_ENABLED == 'true' }} | |
| with: | |
| extra_attributes: "rapids.package_type=conda,rapids.operation=test-cpp,rapids.cuda=${{ matrix.CUDA_VER }},rapids.py=${{ matrix.PY_VER }},rapids.arch=${{ matrix.ARCH }},rapids.linux=${{ matrix.LINUX_VER }},rapids.gpu=${{ matrix.GPU }},rapids.driver=${{ matrix.DRIVER }},rapids.deps=${{ matrix.DEPENDENCIES }}" | |
| - 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 | |
| - uses: actions/checkout@v4 | |
| with: | |
| repository: ${{ inputs.repo }} | |
| ref: ${{ inputs.sha }} | |
| fetch-depth: 0 | |
| - name: Standardize repository information | |
| run: | | |
| echo "RAPIDS_REPOSITORY=${{ inputs.repo || github.repository }}" >> "${GITHUB_ENV}" | |
| echo "RAPIDS_SHA=$(git rev-parse HEAD)" >> "${GITHUB_ENV}" | |
| echo "RAPIDS_REF_NAME=${{ inputs.branch || github.ref_name }}" >> "${GITHUB_ENV}" | |
| echo "RAPIDS_NIGHTLY_DATE=${{ inputs.date }}" >> "${GITHUB_ENV}" | |
| - name: Add custom gha-tools fork | |
| run: wget https://github.com/VenkateshJaya/gha-tools/releases/latest/download/tools.tar.gz -O - | tar -xz -C /usr/local/bin | |
| - name: Setup proxy cache | |
| uses: nv-gha-runners/setup-proxy-cache@main | |
| continue-on-error: true | |
| # Skip the cache on RDS Lab nodes | |
| if: ${{ matrix.GPU != 'v100' && matrix.GPU != 'a100' }} | |
| - name: C++ tests | |
| run: ${{ inputs.script }} | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| - name: Generate test report | |
| uses: test-summary/[email protected] | |
| with: | |
| paths: "${{ env.RAPIDS_TESTS_DIR }}/*.xml" | |
| if: always() | |
| - name: Upload additional artifacts | |
| if: "!cancelled()" | |
| run: rapids-upload-artifacts-dir cuda${RAPIDS_CUDA_VERSION%%.*}_$(arch) |