build #2289
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
| name: build | |
| on: | |
| push: | |
| branches: | |
| - "main" | |
| - "release/*" | |
| tags: | |
| - v[0-9][0-9].[0-9][0-9].[0-9][0-9] | |
| workflow_dispatch: | |
| inputs: | |
| branch: | |
| description: | | |
| branch: git branch the workflow run targets. | |
| Required even when 'sha' is provided because it is also used for organizing artifacts. | |
| required: true | |
| type: string | |
| date: | |
| description: "date: Date (YYYY-MM-DD) this run is for. Used to organize artifacts produced by nightly builds" | |
| required: true | |
| type: string | |
| sha: | |
| description: "sha: full git commit SHA to check out" | |
| required: true | |
| type: string | |
| build_type: | |
| description: "build_type: one of [branch, nightly, pull-request]" | |
| type: string | |
| default: nightly | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} | |
| cancel-in-progress: true | |
| permissions: {} | |
| jobs: | |
| cpp-build: | |
| permissions: | |
| actions: read | |
| contents: read | |
| id-token: write | |
| packages: read | |
| pull-requests: read | |
| secrets: inherit # zizmor: ignore[secrets-inherit] | |
| uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@main | |
| with: | |
| build_type: ${{ inputs.build_type || 'branch' }} | |
| branch: ${{ inputs.branch }} | |
| date: ${{ inputs.date }} | |
| node_type: cpu16 | |
| script: ci/build_cpp.sh | |
| sha: ${{ inputs.sha }} | |
| rocky8-clib-standalone-build-matrix: | |
| permissions: | |
| contents: read | |
| uses: rapidsai/shared-workflows/.github/workflows/compute-matrix.yaml@main | |
| with: | |
| build_type: pull-request | |
| matrix_name: conda-cpp-build | |
| rocky8-clib-standalone-build: | |
| needs: rocky8-clib-standalone-build-matrix | |
| permissions: | |
| actions: read | |
| contents: read | |
| id-token: write | |
| packages: read | |
| pull-requests: read | |
| secrets: inherit # zizmor: ignore[secrets-inherit] | |
| uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJSON(needs.rocky8-clib-standalone-build-matrix.outputs.matrix) }} | |
| with: | |
| build_type: ${{ inputs.build_type || 'branch' }} | |
| branch: ${{ inputs.branch }} | |
| arch: "${{matrix.ARCH}}" | |
| date: ${{ inputs.date }} | |
| container_image: "rapidsai/ci-wheel:26.06-cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}" | |
| node_type: "cpu16" | |
| requires_license_builder: true | |
| script: "ci/build_standalone_c.sh" | |
| artifact-name: "libcuvs_c_${{ matrix.CUDA_VER }}_${{ matrix.ARCH }}.tar.gz" | |
| file_to_upload: "libcuvs_c.tar.gz" | |
| sha: ${{ inputs.sha }} | |
| rust-build-matrix: | |
| needs: cpp-build | |
| permissions: | |
| contents: read | |
| uses: rapidsai/shared-workflows/.github/workflows/compute-matrix.yaml@main | |
| with: | |
| build_type: pull-request | |
| matrix_name: conda-cpp-build | |
| matrix_filter: map(select(.ARCH == "amd64")) | |
| rust-build: | |
| needs: rust-build-matrix | |
| permissions: | |
| actions: read | |
| contents: read | |
| id-token: write | |
| packages: read | |
| pull-requests: read | |
| secrets: inherit # zizmor: ignore[secrets-inherit] | |
| uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main | |
| # Artifacts are not published from these jobs, so it's safe to run for multiple CUDA versions. | |
| # If these jobs start producing artifacts, the names will have to differentiate between CUDA versions. | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJSON(needs.rust-build-matrix.outputs.matrix) }} | |
| with: | |
| build_type: ${{ inputs.build_type || 'branch' }} | |
| branch: ${{ inputs.branch }} | |
| arch: "amd64" | |
| date: ${{ inputs.date }} | |
| container_image: "rapidsai/ci-conda:26.06-cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}" | |
| node_type: "gpu-l4-latest-1" | |
| script: "ci/build_rust.sh" | |
| sha: ${{ inputs.sha }} | |
| go-build-matrix: | |
| needs: cpp-build | |
| permissions: | |
| contents: read | |
| uses: rapidsai/shared-workflows/.github/workflows/compute-matrix.yaml@main | |
| with: | |
| build_type: pull-request | |
| matrix_name: conda-cpp-build | |
| matrix_filter: map(select(.ARCH == "amd64")) | |
| go-build: | |
| needs: go-build-matrix | |
| permissions: | |
| actions: read | |
| contents: read | |
| id-token: write | |
| packages: read | |
| pull-requests: read | |
| secrets: inherit # zizmor: ignore[secrets-inherit] | |
| uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main | |
| # Artifacts are not published from these jobs, so it's safe to run for multiple CUDA versions. | |
| # If these jobs start producing artifacts, the names will have to differentiate between CUDA versions. | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJSON(needs.go-build-matrix.outputs.matrix) }} | |
| with: | |
| build_type: ${{ inputs.build_type || 'branch' }} | |
| branch: ${{ inputs.branch }} | |
| arch: "amd64" | |
| date: ${{ inputs.date }} | |
| container_image: "rapidsai/ci-conda:26.06-cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}" | |
| node_type: "gpu-l4-latest-1" | |
| script: "ci/build_go.sh" | |
| sha: ${{ inputs.sha }} | |
| java-build-matrix: | |
| needs: cpp-build | |
| permissions: | |
| contents: read | |
| uses: rapidsai/shared-workflows/.github/workflows/compute-matrix.yaml@main | |
| with: | |
| build_type: pull-request | |
| matrix_name: conda-cpp-build | |
| matrix_filter: map(select(.ARCH == "amd64")) | |
| java-build: | |
| needs: java-build-matrix | |
| permissions: | |
| actions: read | |
| contents: read | |
| id-token: write | |
| packages: read | |
| pull-requests: read | |
| secrets: inherit # zizmor: ignore[secrets-inherit] | |
| uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main | |
| # Artifacts are not published from these jobs, so it's safe to run for multiple CUDA versions. | |
| # If these jobs start producing artifacts, the names will have to differentiate between CUDA versions. | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJSON(needs.java-build-matrix.outputs.matrix) }} | |
| with: | |
| build_type: ${{ inputs.build_type || 'branch' }} | |
| branch: ${{ inputs.branch }} | |
| arch: "amd64" | |
| date: ${{ inputs.date }} | |
| container_image: "rapidsai/ci-conda:26.06-cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}" | |
| script: "ci/build_java.sh" | |
| artifact-name: "cuvs-java-cuda${{ matrix.CUDA_VER }}" | |
| file_to_upload: "java/cuvs-java/target/" | |
| sha: ${{ inputs.sha }} | |
| python-build: | |
| needs: [cpp-build] | |
| permissions: | |
| actions: read | |
| contents: read | |
| id-token: write | |
| packages: read | |
| pull-requests: read | |
| secrets: inherit # zizmor: ignore[secrets-inherit] | |
| uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main | |
| with: | |
| build_type: ${{ inputs.build_type || 'branch' }} | |
| branch: ${{ inputs.branch }} | |
| date: ${{ inputs.date }} | |
| script: ci/build_python.sh | |
| sha: ${{ inputs.sha }} | |
| # Build a conda package for each CUDA x ARCH x minimum supported Python version | |
| matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber))) | |
| upload-conda: | |
| needs: [cpp-build, python-build] | |
| permissions: | |
| actions: read | |
| contents: read | |
| id-token: write | |
| packages: read | |
| pull-requests: read | |
| uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@main | |
| secrets: | |
| CONDA_RAPIDSAI_NIGHTLY_TOKEN: ${{ secrets.CONDA_RAPIDSAI_NIGHTLY_TOKEN }} | |
| CONDA_RAPIDSAI_TOKEN: ${{ secrets.CONDA_RAPIDSAI_TOKEN }} | |
| with: | |
| build_type: ${{ inputs.build_type || 'branch' }} | |
| branch: ${{ inputs.branch }} | |
| date: ${{ inputs.date }} | |
| sha: ${{ inputs.sha }} | |
| skip_upload_pkgs: libcuvs-template | |
| rust-publish: | |
| needs: [rust-build, upload-conda] | |
| permissions: | |
| contents: read | |
| secrets: | |
| GPUTESTER_CRATES_TOKEN: ${{ secrets.GPUTESTER_CRATES_TOKEN }} | |
| uses: ./.github/workflows/publish-rust.yaml | |
| docs-build: | |
| if: github.ref_type == 'branch' | |
| needs: python-build | |
| permissions: | |
| actions: read | |
| contents: read | |
| id-token: write | |
| packages: read | |
| pull-requests: read | |
| secrets: inherit # zizmor: ignore[secrets-inherit] | |
| uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main | |
| with: | |
| arch: "amd64" | |
| branch: ${{ inputs.branch }} | |
| build_type: ${{ inputs.build_type || 'branch' }} | |
| container_image: "rapidsai/ci-conda:26.06-latest" | |
| date: ${{ inputs.date }} | |
| node_type: "gpu-l4-latest-1" | |
| script: "ci/build_docs.sh" | |
| sha: ${{ inputs.sha }} | |
| wheel-build-libcuvs: | |
| permissions: | |
| actions: read | |
| contents: read | |
| id-token: write | |
| packages: read | |
| pull-requests: read | |
| secrets: inherit # zizmor: ignore[secrets-inherit] | |
| uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main | |
| with: | |
| build_type: ${{ inputs.build_type || 'branch' }} | |
| branch: ${{ inputs.branch }} | |
| sha: ${{ inputs.sha }} | |
| date: ${{ inputs.date }} | |
| node_type: cpu16 | |
| script: ci/build_wheel_libcuvs.sh | |
| # build for every combination of arch and CUDA version, but only for the latest Python | |
| matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber))) | |
| package-name: libcuvs | |
| package-type: cpp | |
| wheel-publish-libcuvs: | |
| needs: wheel-build-libcuvs | |
| permissions: | |
| actions: read | |
| contents: read | |
| id-token: write | |
| packages: read | |
| pull-requests: read | |
| uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@main | |
| secrets: | |
| CONDA_RAPIDSAI_WHEELS_NIGHTLY_TOKEN: ${{ secrets.CONDA_RAPIDSAI_WHEELS_NIGHTLY_TOKEN }} | |
| RAPIDSAI_PYPI_TOKEN: ${{ secrets.RAPIDSAI_PYPI_TOKEN }} | |
| with: | |
| build_type: ${{ inputs.build_type || 'branch' }} | |
| branch: ${{ inputs.branch }} | |
| sha: ${{ inputs.sha }} | |
| date: ${{ inputs.date }} | |
| package-name: libcuvs | |
| package-type: cpp | |
| wheel-build-cuvs: | |
| needs: wheel-build-libcuvs | |
| permissions: | |
| actions: read | |
| contents: read | |
| id-token: write | |
| packages: read | |
| pull-requests: read | |
| secrets: inherit # zizmor: ignore[secrets-inherit] | |
| uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main | |
| with: | |
| build_type: ${{ inputs.build_type || 'branch' }} | |
| branch: ${{ inputs.branch }} | |
| sha: ${{ inputs.sha }} | |
| date: ${{ inputs.date }} | |
| node_type: cpu8 | |
| script: ci/build_wheel_cuvs.sh | |
| package-name: cuvs | |
| package-type: python | |
| # Build a wheel for each CUDA x ARCH x minimum supported Python version | |
| matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber))) | |
| wheel-publish-cuvs: | |
| needs: wheel-build-cuvs | |
| permissions: | |
| actions: read | |
| contents: read | |
| id-token: write | |
| packages: read | |
| pull-requests: read | |
| uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@main | |
| secrets: | |
| CONDA_RAPIDSAI_WHEELS_NIGHTLY_TOKEN: ${{ secrets.CONDA_RAPIDSAI_WHEELS_NIGHTLY_TOKEN }} | |
| RAPIDSAI_PYPI_TOKEN: ${{ secrets.RAPIDSAI_PYPI_TOKEN }} | |
| with: | |
| build_type: ${{ inputs.build_type || 'branch' }} | |
| branch: ${{ inputs.branch }} | |
| sha: ${{ inputs.sha }} | |
| date: ${{ inputs.date }} | |
| package-name: cuvs | |
| package-type: python | |
| publish-wheel-search-key: cuvs_wheel_python_abi3 |