diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..5fb200bd --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,2 @@ +# CI code owners +* @rapidsai/ci-codeowners diff --git a/.github/workflows/build-in-devcontainer.yaml b/.github/workflows/build-in-devcontainer.yaml index 57302ebe..0f32a101 100644 --- a/.github/workflows/build-in-devcontainer.yaml +++ b/.github/workflows/build-in-devcontainer.yaml @@ -9,6 +9,9 @@ on: cuda: type: string default: '["12.0"]' + python_package_manager: + type: string + default: '["conda", "pip"]' repo: type: string node_type: @@ -55,14 +58,10 @@ jobs: matrix: arch: ${{ fromJSON(inputs.arch) }} cuda: ${{ fromJSON(inputs.cuda) }} - pkgr: ["conda", "pip"] + pkgr: ${{ fromJSON(inputs.python_package_manager) }} runs-on: "linux-${{ matrix.arch }}-${{ inputs.node_type }}" steps: - uses: actions/checkout@v4 - env: - GIT_TRACE_PACKET: 1 - GIT_TRACE: 1 - GIT_CURL_VERBOSE: 1 with: repository: ${{ inputs.repo }} ref: ${{ inputs.sha }} diff --git a/.github/workflows/checks.yaml b/.github/workflows/checks.yaml index efbe05a5..e5205931 100644 --- a/.github/workflows/checks.yaml +++ b/.github/workflows/checks.yaml @@ -46,10 +46,6 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - env: - GIT_TRACE_PACKET: 1 - GIT_TRACE: 1 - GIT_CURL_VERBOSE: 1 - name: Get PR Info id: get-pr-info uses: rapidsai/shared-actions/get-pr-info@main @@ -71,10 +67,6 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - env: - GIT_TRACE_PACKET: 1 - GIT_TRACE: 1 - GIT_CURL_VERBOSE: 1 with: fetch-depth: 0 - name: Get PR Info diff --git a/.github/workflows/conda-cpp-build.yaml b/.github/workflows/conda-cpp-build.yaml index 7b05c74d..c82a60e1 100644 --- a/.github/workflows/conda-cpp-build.yaml +++ b/.github/workflows/conda-cpp-build.yaml @@ -59,10 +59,10 @@ jobs: export MATRIX=" # amd64 - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' } + - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' } # arm64 - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' } - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' } + - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' } " MATRIX="$( @@ -92,10 +92,6 @@ jobs: aws-region: ${{ vars.AWS_REGION }} role-duration-seconds: 43200 # 12h - uses: actions/checkout@v4 - env: - GIT_TRACE_PACKET: 1 - GIT_TRACE: 1 - GIT_CURL_VERBOSE: 1 with: repository: ${{ inputs.repo }} ref: ${{ inputs.sha }} diff --git a/.github/workflows/conda-cpp-post-build-checks.yaml b/.github/workflows/conda-cpp-post-build-checks.yaml index f27e77a3..cb53f3ad 100644 --- a/.github/workflows/conda-cpp-post-build-checks.yaml +++ b/.github/workflows/conda-cpp-post-build-checks.yaml @@ -53,10 +53,6 @@ jobs: aws-region: ${{ vars.AWS_REGION }} role-duration-seconds: 43200 # 12h - uses: actions/checkout@v4 - env: - GIT_TRACE_PACKET: 1 - GIT_TRACE: 1 - GIT_CURL_VERBOSE: 1 with: repository: ${{ inputs.repo }} ref: ${{ inputs.sha }} @@ -75,10 +71,6 @@ jobs: echo "RAPIDS_EXTRACTED_DIR=${EXTRACTED_DIR}" >> "${GITHUB_ENV}" - name: Get weak detection tool uses: actions/checkout@v4 - env: - GIT_TRACE_PACKET: 1 - GIT_TRACE: 1 - GIT_CURL_VERBOSE: 1 with: repository: rapidsai/detect-weak-linking ref: refs/heads/main diff --git a/.github/workflows/conda-cpp-tests.yaml b/.github/workflows/conda-cpp-tests.yaml index d4eac8c7..804818ec 100644 --- a/.github/workflows/conda-cpp-tests.yaml +++ b/.github/workflows/conda-cpp-tests.yaml @@ -63,27 +63,25 @@ jobs: # please keep the matrices sorted in ascending order by the following: # - # [ARCH, PY_VER, CUDA_VER, LINUX_VER, GPU, DRIVER] + # [ARCH, PY_VER, CUDA_VER, LINUX_VER, GPU, DRIVER, DEPENDENCIES] # export MATRICES=" pull-request: # amd64 - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'earliest' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest' } + - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'earliest', DEPENDENCIES: 'oldest' } + - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest', DEPENDENCIES: 'latest' } # arm64 - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest' } + - { 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.9', CUDA_VER: '11.4.3', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'earliest' } - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.4.3', LINUX_VER: 'ubuntu20.04', GPU: 'v100', DRIVER: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest' } + - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.4.3', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'earliest', DEPENDENCIES: 'oldest' } + - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest', DEPENDENCIES: 'latest' } + - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'latest', DEPENDENCIES: 'latest' } + - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest', DEPENDENCIES: 'latest' } # arm64 - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.4.3', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'latest' } + - { 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: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } + - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.5.1', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } " TEST_MATRIX=$(yq -n 'env(MATRICES) | .[strenv(BUILD_TYPE)]') @@ -117,10 +115,6 @@ jobs: aws-region: ${{ vars.AWS_REGION }} role-duration-seconds: 43200 # 12h - uses: actions/checkout@v4 - env: - GIT_TRACE_PACKET: 1 - GIT_TRACE: 1 - GIT_CURL_VERBOSE: 1 with: repository: ${{ inputs.repo }} ref: ${{ inputs.sha }} @@ -136,7 +130,7 @@ jobs: env: GH_TOKEN: ${{ github.token }} - name: Generate test report - uses: test-summary/action@v2.3 + uses: test-summary/action@v2.4 with: paths: "${{ env.RAPIDS_TESTS_DIR }}/*.xml" if: always() diff --git a/.github/workflows/conda-python-build.yaml b/.github/workflows/conda-python-build.yaml index 3c3aab7c..04f046f0 100644 --- a/.github/workflows/conda-python-build.yaml +++ b/.github/workflows/conda-python-build.yaml @@ -58,23 +58,19 @@ jobs: # export MATRIX=" # amd64 - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' } - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' } - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' } + - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' } - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' } - - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' } + - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' } - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' } + - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' } # arm64 - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' } - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' } - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' } - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' } + - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' } - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' } - - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' } + - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' } - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' } - - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' } + - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' } " MATRIX="$( @@ -102,10 +98,6 @@ jobs: aws-region: ${{ vars.AWS_REGION }} role-duration-seconds: 43200 # 12h - uses: actions/checkout@v4 - env: - GIT_TRACE_PACKET: 1 - GIT_TRACE: 1 - GIT_CURL_VERBOSE: 1 with: repository: ${{ inputs.repo }} ref: ${{ inputs.sha }} diff --git a/.github/workflows/conda-python-tests.yaml b/.github/workflows/conda-python-tests.yaml index dc1d26dc..da114ef9 100644 --- a/.github/workflows/conda-python-tests.yaml +++ b/.github/workflows/conda-python-tests.yaml @@ -66,27 +66,25 @@ jobs: # please keep the matrices sorted in ascending order by the following: # - # [ARCH, PY_VER, CUDA_VER, LINUX_VER, GPU, DRIVER] + # [ARCH, PY_VER, CUDA_VER, LINUX_VER, GPU, DRIVER, DEPENDENCIES] # export MATRICES=" pull-request: # amd64 - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'earliest' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest' } + - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'earliest', DEPENDENCIES: 'oldest' } + - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest', DEPENDENCIES: 'latest' } # arm64 - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest' } + - { 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.9', CUDA_VER: '11.4.3', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'earliest' } - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.4.3', LINUX_VER: 'ubuntu20.04', GPU: 'v100', DRIVER: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest' } + - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.4.3', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'earliest', DEPENDENCIES: 'oldest' } + - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest', DEPENDENCIES: 'latest' } + - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'latest', DEPENDENCIES: 'latest' } + - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest', DEPENDENCIES: 'latest' } # arm64 - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.4.3', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'latest' } + - { 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: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } + - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.5.1', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } " TEST_MATRIX=$(yq -n 'env(MATRICES) | .[strenv(BUILD_TYPE)]') @@ -99,15 +97,17 @@ jobs: 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_COVERAGE_DIR: ${{ github.workspace }}/coverage-results + RAPIDS_DEPENDENCIES: ${{ matrix.DEPENDENCIES }} RAPIDS_TESTS_DIR: ${{ github.workspace }}/test-results - RAPIDS_ARTIFACTS_DIR: ${{ github.workspace }}/artifacts container: image: rapidsai/ci-conda:cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }} options: ${{ inputs.container-options }} @@ -121,10 +121,6 @@ jobs: aws-region: ${{ vars.AWS_REGION }} role-duration-seconds: 43200 # 12h - uses: actions/checkout@v4 - env: - GIT_TRACE_PACKET: 1 - GIT_TRACE: 1 - GIT_CURL_VERBOSE: 1 with: repository: ${{ inputs.repo }} ref: ${{ inputs.sha }} @@ -140,17 +136,21 @@ jobs: env: GH_TOKEN: ${{ github.token }} - name: Generate test report - uses: test-summary/action@v2.3 + uses: test-summary/action@v2.4 with: paths: "${{ env.RAPIDS_TESTS_DIR }}/*.xml" if: always() - name: Run codecov if: inputs.run_codecov + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} run: | - codecov \ - -s \ - "${RAPIDS_COVERAGE_DIR}" \ - -v + codecovcli \ + -v \ + upload-process \ + -C ${{ github.sha }} \ + -s "${RAPIDS_COVERAGE_DIR}" \ + --handle-no-reports-found - name: Upload additional artifacts if: "!cancelled()" run: rapids-upload-artifacts-dir cuda${RAPIDS_CUDA_VERSION%%.*}_$(arch)_py${RAPIDS_PY_VERSION//.} diff --git a/.github/workflows/conda-upload-packages.yaml b/.github/workflows/conda-upload-packages.yaml index 075a50f9..f5ade49f 100644 --- a/.github/workflows/conda-upload-packages.yaml +++ b/.github/workflows/conda-upload-packages.yaml @@ -52,10 +52,6 @@ jobs: aws-region: ${{ vars.AWS_REGION }} role-duration-seconds: 43200 # 12h - uses: actions/checkout@v4 - env: - GIT_TRACE_PACKET: 1 - GIT_TRACE: 1 - GIT_CURL_VERBOSE: 1 with: repository: ${{ inputs.repo }} ref: ${{ inputs.sha }} @@ -66,27 +62,11 @@ jobs: 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: Check if repository is private - uses: actions/github-script@v7 - id: is-private - with: - result-encoding: string - retries: 5 - script: | - return (await github.rest.repos.get({ - owner: context.repo.owner, - repo: context.repo.repo, - })).data.private - name: Set Proper Conda Upload Token - env: - REPO_IS_PRIVATE: ${{steps.is-private.outputs.result}} run: | RAPIDS_CONDA_TOKEN=${{ secrets.CONDA_RAPIDSAI_NIGHTLY_TOKEN }} if rapids-is-release-build; then RAPIDS_CONDA_TOKEN=${{ secrets.CONDA_RAPIDSAI_TOKEN }} - if [ "${REPO_IS_PRIVATE}" = "true" ]; then - RAPIDS_CONDA_TOKEN=${{ secrets.CONDA_NVIDIA_TOKEN }} - fi fi echo "RAPIDS_CONDA_TOKEN=${RAPIDS_CONDA_TOKEN}" >> "${GITHUB_ENV}" - name: Upload packages diff --git a/.github/workflows/custom-job.yaml b/.github/workflows/custom-job.yaml index 546c83ad..6fb48477 100644 --- a/.github/workflows/custom-job.yaml +++ b/.github/workflows/custom-job.yaml @@ -61,10 +61,6 @@ jobs: aws-region: ${{ vars.AWS_REGION }} role-duration-seconds: 43200 # 12h - uses: actions/checkout@v4 - env: - GIT_TRACE_PACKET: 1 - GIT_TRACE: 1 - GIT_CURL_VERBOSE: 1 with: repository: ${{ inputs.repo }} ref: ${{ inputs.sha }} diff --git a/.github/workflows/pr-builder.yaml b/.github/workflows/pr-builder.yaml index 4ac490fb..b0b01721 100644 --- a/.github/workflows/pr-builder.yaml +++ b/.github/workflows/pr-builder.yaml @@ -1,9 +1,17 @@ on: workflow_call: + inputs: + needs: + required: false + type: string + default: '{}' jobs: run: runs-on: ubuntu-latest steps: # This reusable workflow should depend on all other jobs in the calling workflow. - - run: exit 0 + - name: "Check all dependent jobs" + env: + NEEDS: ${{ inputs.needs }} + run: jq -en 'env.NEEDS | fromjson | all(.result as $result | ["success", "skipped"] | any($result == .))' diff --git a/.github/workflows/project-get-item-id.yaml b/.github/workflows/project-get-item-id.yaml index aaa7df40..30554c1d 100644 --- a/.github/workflows/project-get-item-id.yaml +++ b/.github/workflows/project-get-item-id.yaml @@ -16,7 +16,7 @@ on: required: true secrets: - PROJECT_MANAGEMENT_SECRET: + ADD_TO_PROJECT_GITHUB_TOKEN: description: "Project Access Token" required: true @@ -32,15 +32,15 @@ jobs: ITEM_PROJECT_ID: ${{ steps.get_item_id.outputs.ITEM_PROJECT_ID }} steps: - - name: Sleep 1s - id: sleep_1s + - name: Sleep 10s + id: sleep run: | - sleep 1 # Ensure the PR is added to the project before we query its ID + sleep 10 # Ensure the PR is added to the project before we query its ID - name: Get Item Project ID id: get_item_id env: - GH_TOKEN: ${{ secrets.PROJECT_MANAGEMENT_SECRET }} + GH_TOKEN: ${{ secrets.ADD_TO_PROJECT_GITHUB_TOKEN }} run: | # Query up to 10 projects for the PR # There's no graphQL filter configured to query by a specific project diff --git a/.github/workflows/project-get-set-iteration-field.yaml b/.github/workflows/project-get-set-iteration-field.yaml index 503cb16a..9ce50060 100644 --- a/.github/workflows/project-get-set-iteration-field.yaml +++ b/.github/workflows/project-get-set-iteration-field.yaml @@ -42,7 +42,7 @@ on: type: boolean secrets: - PROJECT_MANAGEMENT_SECRET: + ADD_TO_PROJECT_GITHUB_TOKEN: description: "Project Access Token" required: true @@ -63,7 +63,7 @@ jobs: - name: Get Iteration Option ID id: get_iteration_option_id env: - GH_TOKEN: ${{ secrets.PROJECT_MANAGEMENT_SECRET }} + GH_TOKEN: ${{ secrets.ADD_TO_PROJECT_GITHUB_TOKEN }} run: | # Get current iteration iteration id # The current iteration is always the first element in the returned list @@ -93,7 +93,7 @@ jobs: id: update_item_iteration_field if: ${{ inputs.UPDATE_ITEM == true }} env: - GH_TOKEN: ${{ secrets.PROJECT_MANAGEMENT_SECRET }} + GH_TOKEN: ${{ secrets.ADD_TO_PROJECT_GITHUB_TOKEN }} run: | # Set the iteration based on the query above # This overwrites whatever was in it before, we may want to make an "OVERWRITE" option diff --git a/.github/workflows/project-get-set-single-select-field.yaml b/.github/workflows/project-get-set-single-select-field.yaml index 38fde2d7..8ff09bbb 100644 --- a/.github/workflows/project-get-set-single-select-field.yaml +++ b/.github/workflows/project-get-set-single-select-field.yaml @@ -47,7 +47,7 @@ on: type: boolean secrets: - PROJECT_MANAGEMENT_SECRET: + ADD_TO_PROJECT_GITHUB_TOKEN: description: "Project Access Token" required: true @@ -68,7 +68,7 @@ jobs: - name: Get single_select Option ID id: get_single_select_option_id env: - GH_TOKEN: ${{ secrets.PROJECT_MANAGEMENT_SECRET }} + GH_TOKEN: ${{ secrets.ADD_TO_PROJECT_GITHUB_TOKEN }} run: | # Get single_select option id gh api graphql -f query=' @@ -92,7 +92,7 @@ jobs: id: update_item_single_select_field if: ${{ inputs.UPDATE_ITEM == true }} env: - GH_TOKEN: ${{ secrets.PROJECT_MANAGEMENT_SECRET }} + GH_TOKEN: ${{ secrets.ADD_TO_PROJECT_GITHUB_TOKEN }} run: | # Set the single_select based on the query above # This overwrites whatever was in it before, we may want to make an "OVERWRITE" option diff --git a/.github/workflows/project-set-text-date-numeric-field.yaml b/.github/workflows/project-set-text-date-numeric-field.yaml index 71eabdb2..8ea45f41 100644 --- a/.github/workflows/project-set-text-date-numeric-field.yaml +++ b/.github/workflows/project-set-text-date-numeric-field.yaml @@ -43,7 +43,7 @@ on: type: boolean secrets: - PROJECT_MANAGEMENT_SECRET: + ADD_TO_PROJECT_GITHUB_TOKEN: description: "Project Access Token" required: true @@ -57,7 +57,7 @@ jobs: - name: Update item text/date/numeric field id: update_item_text_date_numeric_field env: - GH_TOKEN: ${{ secrets.PROJECT_MANAGEMENT_SECRET }} + GH_TOKEN: ${{ secrets.ADD_TO_PROJECT_GITHUB_TOKEN }} run: | # Set the field based on the inputted desired value # This overwrites whatever was in it before, we may want to make an "OVERWRITE" option diff --git a/.github/workflows/project-update-linked-issues.yaml b/.github/workflows/project-update-linked-issues.yaml index 7a99833f..e382c88c 100644 --- a/.github/workflows/project-update-linked-issues.yaml +++ b/.github/workflows/project-update-linked-issues.yaml @@ -38,7 +38,7 @@ on: required: true secrets: - PROJECT_MANAGEMENT_SECRET: + ADD_TO_PROJECT_GITHUB_TOKEN: description: "Project Access Token" required: true @@ -53,7 +53,7 @@ jobs: - name: Sync Linked Issues id: sync_linked_issues env: - GITHUB_TOKEN: ${{ secrets.PROJECT_MANAGEMENT_SECRET }} + GITHUB_TOKEN: ${{ secrets.ADD_TO_PROJECT_GITHUB_TOKEN }} run: | # Find the linked issues to the PR # If an issue is passed in, the json will return null and the for loop won't trigger diff --git a/.github/workflows/wheels-build.yaml b/.github/workflows/wheels-build.yaml index 746e9e40..dc7de3a0 100644 --- a/.github/workflows/wheels-build.yaml +++ b/.github/workflows/wheels-build.yaml @@ -82,23 +82,19 @@ jobs: # export MATRIX=" # amd64 - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8' } - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8' } + - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.5.1', LINUX_VER: 'rockylinux8' } - { 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' } + - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.5.1', LINUX_VER: 'rockylinux8' } - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8' } + - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.5.1', LINUX_VER: 'rockylinux8' } # arm64 - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8' } - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8' } + - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.5.1', LINUX_VER: 'rockylinux8' } - { 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' } + - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.5.1', LINUX_VER: 'rockylinux8' } - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8' } + - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.5.1', LINUX_VER: 'rockylinux8' } " MATRIX="$( @@ -128,10 +124,6 @@ jobs: 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 }} @@ -156,10 +148,6 @@ jobs: - name: checkout extra repos uses: actions/checkout@v4 if: ${{ inputs.extra-repo != '' }} - env: - GIT_TRACE_PACKET: 1 - GIT_TRACE: 1 - GIT_CURL_VERBOSE: 1 with: repository: ${{ inputs.extra-repo }} ref: ${{ inputs.extra-repo-sha }} diff --git a/.github/workflows/wheels-publish.yaml b/.github/workflows/wheels-publish.yaml index 1762b3d4..a86cc86c 100644 --- a/.github/workflows/wheels-publish.yaml +++ b/.github/workflows/wheels-publish.yaml @@ -24,6 +24,10 @@ on: required: false default: python type: string + publish_to_pypi: + required: false + type: boolean + default: false permissions: actions: read @@ -58,10 +62,6 @@ jobs: 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 }} @@ -80,3 +80,20 @@ jobs: run: rapids-wheels-anaconda "${{ inputs.package-name }}" "${{ inputs.package-type }}" env: RAPIDS_CONDA_TOKEN: ${{ secrets.CONDA_RAPIDSAI_WHEELS_NIGHTLY_TOKEN }} + + - name: Check if build is release + id: check_if_release + shell: bash + if: ${{ inputs.publish_to_pypi }} + run: | + if rapids-is-release-build; then + echo "is_release_build=true" | tee -a ${GITHUB_OUTPUT} + else + echo "is_release_build=false" | tee -a ${GITHUB_OUTPUT} + fi + + - name: Publish the downloaded wheels to PyPI + if: ${{ inputs.publish_to_pypi && steps.check_if_release.outputs.is_release_build == 'true' }} + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.RAPIDSAI_PYPI_TOKEN }} diff --git a/.github/workflows/wheels-test.yaml b/.github/workflows/wheels-test.yaml index a381c308..3d2ed488 100644 --- a/.github/workflows/wheels-test.yaml +++ b/.github/workflows/wheels-test.yaml @@ -75,27 +75,23 @@ jobs: # please keep the matrices sorted in ascending order by the following: # - # [ARCH, PY_VER, CUDA_VER, LINUX_VER, GPU, DRIVER] + # [ARCH, PY_VER, CUDA_VER, LINUX_VER, GPU, DRIVER, DEPENDENCIES] # export MATRICES=" pull-request: # amd64 - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04', gpu: 'v100', driver: 'latest' } + - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest', DEPENDENCIES: 'oldest' } # arm64 - - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu20.04', gpu: 'a100', driver: 'latest' } + - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } nightly: # amd64 - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu20.04', gpu: 'v100', driver: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04', gpu: 'v100', driver: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', gpu: 'v100', driver: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', gpu: 'v100', driver: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', gpu: 'v100', driver: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04', gpu: 'v100', driver: 'latest' } + - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'latest', DEPENDENCIES: 'oldest' } + - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', GPU: 'v100', DRIVER: 'latest', DEPENDENCIES: 'latest' } + - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest', DEPENDENCIES: 'latest' } # arm64 - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu20.04', gpu: 'a100', driver: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.10', 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' } - - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', gpu: 'a100', driver: 'latest' } + - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'oldest' } + - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } + - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } " TEST_MATRIX=$(yq -n 'env(MATRICES) | .[strenv(BUILD_TYPE)]') @@ -108,15 +104,16 @@ jobs: echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}" test: - name: ${{ matrix.CUDA_VER }}, ${{ matrix.PY_VER }}, ${{ matrix.ARCH }}, ${{ matrix.LINUX_VER }}, ${{ matrix.gpu }} + name: ${{ matrix.CUDA_VER }}, ${{ matrix.PY_VER }}, ${{ matrix.ARCH }}, ${{ matrix.LINUX_VER }}, ${{ matrix.GPU }}, ${{ matrix.DRIVER }}-driver, ${{ matrix.DEPENDENCIES }}-deps needs: compute-matrix env: - RAPIDS_TESTS_DIR: ${{ github.workspace }}/test-results RAPIDS_ARTIFACTS_DIR: ${{ github.workspace }}/artifacts + RAPIDS_DEPENDENCIES: ${{ matrix.DEPENDENCIES }} + RAPIDS_TESTS_DIR: ${{ github.workspace }}/test-results strategy: fail-fast: false matrix: ${{ fromJSON(needs.compute-matrix.outputs.MATRIX) }} - runs-on: "linux-${{ matrix.ARCH }}-gpu-${{ matrix.gpu }}-${{ matrix.driver }}-1" + 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 }} @@ -134,10 +131,6 @@ jobs: - 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 }} @@ -159,7 +152,7 @@ jobs: RAPIDS_AUX_SECRET_1: ${{ secrets.RAPIDS_AUX_SECRET_1 }} - name: Generate test report - uses: test-summary/action@v2.3 + uses: test-summary/action@v2.4 with: paths: "${{ env.RAPIDS_TESTS_DIR }}/*.xml" show: ${{ inputs.test_summary_show }}