diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 6df806d4..a4b7b00c 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -120,46 +120,46 @@ jobs: PYTHON_VER=${{ inputs.PYTHON_VER }} RAPIDS_VER=${{ inputs.RAPIDS_VER }} tags: ${{ inputs.NOTEBOOKS_TAG }}-${{ matrix.ARCH }} - - name: Build RAFT ANN Benchmarks GPU image - uses: docker/build-push-action@v6 - with: - context: context - file: raft-ann-bench/gpu/Dockerfile - target: raft-ann-bench - push: true - pull: true - build-args: | - CUDA_VER=${{ inputs.CUDA_VER }} - LINUX_VER=${{ inputs.LINUX_VER }} - PYTHON_VER=${{ inputs.PYTHON_VER }} - RAPIDS_VER=${{ inputs.RAPIDS_VER }} - tags: ${{ inputs.RAFT_ANN_BENCH_TAG }}-${{ matrix.ARCH }} - - name: Build RAFT ANN Benchmarks GPU with datasets image - uses: docker/build-push-action@v6 - with: - context: context - file: raft-ann-bench/gpu/Dockerfile - target: raft-ann-bench-datasets - push: true - pull: true - build-args: | - CUDA_VER=${{ inputs.CUDA_VER }} - LINUX_VER=${{ inputs.LINUX_VER }} - PYTHON_VER=${{ inputs.PYTHON_VER }} - RAPIDS_VER=${{ inputs.RAPIDS_VER }} - tags: ${{ inputs.RAFT_ANN_BENCH_DATASETS_TAG }}-${{ matrix.ARCH }} - - name: Build RAFT ANN Benchmarks CPU image - if: inputs.BUILD_RAFT_ANN_BENCH_CPU_IMAGE - uses: docker/build-push-action@v6 - with: - context: context - file: raft-ann-bench/cpu/Dockerfile - target: raft-ann-bench-cpu - push: true - pull: true - build-args: | - CUDA_VER=${{ inputs.CUDA_VER }} - LINUX_VER=${{ inputs.LINUX_VER }} - PYTHON_VER=${{ inputs.PYTHON_VER }} - RAPIDS_VER=${{ inputs.RAPIDS_VER }} - tags: ${{ inputs.RAFT_ANN_BENCH_CPU_TAG }}-${{ matrix.ARCH }} + # - name: Build RAFT ANN Benchmarks GPU image + # uses: docker/build-push-action@v6 + # with: + # context: context + # file: raft-ann-bench/gpu/Dockerfile + # target: raft-ann-bench + # push: true + # pull: true + # build-args: | + # CUDA_VER=${{ inputs.CUDA_VER }} + # LINUX_VER=${{ inputs.LINUX_VER }} + # PYTHON_VER=${{ inputs.PYTHON_VER }} + # RAPIDS_VER=${{ inputs.RAPIDS_VER }} + # tags: ${{ inputs.RAFT_ANN_BENCH_TAG }}-${{ matrix.ARCH }} + # - name: Build RAFT ANN Benchmarks GPU with datasets image + # uses: docker/build-push-action@v6 + # with: + # context: context + # file: raft-ann-bench/gpu/Dockerfile + # target: raft-ann-bench-datasets + # push: true + # pull: true + # build-args: | + # CUDA_VER=${{ inputs.CUDA_VER }} + # LINUX_VER=${{ inputs.LINUX_VER }} + # PYTHON_VER=${{ inputs.PYTHON_VER }} + # RAPIDS_VER=${{ inputs.RAPIDS_VER }} + # tags: ${{ inputs.RAFT_ANN_BENCH_DATASETS_TAG }}-${{ matrix.ARCH }} + # - name: Build RAFT ANN Benchmarks CPU image + # if: inputs.BUILD_RAFT_ANN_BENCH_CPU_IMAGE + # uses: docker/build-push-action@v6 + # with: + # context: context + # file: raft-ann-bench/cpu/Dockerfile + # target: raft-ann-bench-cpu + # push: true + # pull: true + # build-args: | + # CUDA_VER=${{ inputs.CUDA_VER }} + # LINUX_VER=${{ inputs.LINUX_VER }} + # PYTHON_VER=${{ inputs.PYTHON_VER }} + # RAPIDS_VER=${{ inputs.RAPIDS_VER }} + # tags: ${{ inputs.RAFT_ANN_BENCH_CPU_TAG }}-${{ matrix.ARCH }} diff --git a/.github/workflows/build-test-publish-images.yml b/.github/workflows/build-test-publish-images.yml index 848dc26c..5fd8ee7a 100644 --- a/.github/workflows/build-test-publish-images.yml +++ b/.github/workflows/build-test-publish-images.yml @@ -225,6 +225,37 @@ jobs: GPUCIBOT_DOCKERHUB_TOKEN: ${{ secrets.GPUCIBOT_DOCKERHUB_TOKEN }} ARCHES: ${{ toJSON(matrix.ARCHES) }} run: ci/create-multiarch-manifest.sh + validate: + needs: [build, build-multiarch-manifest] + strategy: + matrix: ${{ fromJSON(needs.compute-matrix.outputs.TEST_MATRIX) }} + fail-fast: false + secrets: inherit + uses: ./.github/workflows/validate.yml + with: + ARCH: ${{ matrix.ARCH }} + CONTAINER_CANARY_VERSION: main + CUDA_VER: ${{ matrix.CUDA_VER }} + GPU: ${{ matrix.GPU }} + DRIVER: ${{ matrix.DRIVER }} + PYTHON_VER: ${{ matrix.PYTHON_VER }} + # images to test + BASE_TAG: + "docker.io/rapidsai/${{ needs.compute-matrix.outputs.BASE_IMAGE_REPO }}:\ + ${{ needs.compute-matrix.outputs.BASE_TAG_PREFIX }}\ + ${{ needs.compute-matrix.outputs.RAPIDS_VER }}\ + ${{ needs.compute-matrix.outputs.ALPHA_TAG }}-\ + cuda${{ matrix.CUDA_VER }}-\ + py${{ matrix.PYTHON_VER }}-\ + ${{ matrix.ARCH }}" + NOTEBOOKS_TAG: + "docker.io/rapidsai/${{ needs.compute-matrix.outputs.NOTEBOOKS_IMAGE_REPO }}:\ + ${{ needs.compute-matrix.outputs.NOTEBOOKS_TAG_PREFIX }}\ + ${{ needs.compute-matrix.outputs.RAPIDS_VER }}\ + ${{ needs.compute-matrix.outputs.ALPHA_TAG }}-\ + cuda${{ matrix.CUDA_VER }}-\ + py${{ matrix.PYTHON_VER }}-\ + ${{ matrix.ARCH }}" test: needs: [compute-matrix, build] if: inputs.run_tests diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml new file mode 100644 index 00000000..c4430ecb --- /dev/null +++ b/.github/workflows/validate.yml @@ -0,0 +1,93 @@ +name: Validate images + +on: + workflow_call: + inputs: + ARCH: + required: true + type: string + # a tag from https://github.com/NVIDIA/container-canary/releases + CONTAINER_CANARY_VERSION: + description: 'tag from https://github.com/NVIDIA/container-canary/releases' + required: true + type: string + CUDA_VER: + required: true + type: string + DRIVER: + required: true + type: string + GPU: + required: true + type: string + PYTHON_VER: + required: true + type: string + BASE_TAG: + required: true + type: string + NOTEBOOKS_TAG: + required: true + type: string + +defaults: + run: + shell: sh + +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: + validate: + strategy: + matrix: + ARCH: ["${{ inputs.ARCH }}"] + CUDA_VER: ["${{ inputs.CUDA_VER }}"] + PYTHON_VER: ["${{ inputs.PYTHON_VER }}"] + GPU: ["${{ inputs.GPU }}"] + DRIVER: ["${{ inputs.DRIVER }}"] + fail-fast: false + runs-on: "linux-${{ inputs.ARCH }}-cpu4" + # container: + # image: 'docker:dind' + # options: --privileged + # env: + # NVIDIA_VISIBLE_DEVICES: ${{ env.NVIDIA_VISIBLE_DEVICES }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 1 + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: '1.22.x' + - name: Install container-canary + run: | + GOBIN=/tmp/canary-bin go install github.com/nvidia/container-canary@${{ inputs.CONTAINER_CANARY_VERSION }} + /tmp/canary-bin/container-canary version + - name: (base) container-canary checks + run: | + export PATH="/tmp/canary-bin:${PATH}" + sh ./ci/container-canary/run-checks.sh \ + --dask-scheduler \ + ${{ inputs.BASE_TAG }} + - name: (notebooks) container-canary checks + run: | + export PATH="/tmp/canary-bin:${PATH}" + sh ./ci/container-canary/run-checks.sh \ + --dask-scheduler \ + --notebooks \ + ${{ inputs.NOTEBOOK_TAG }} diff --git a/Dockerfile b/Dockerfile index 9d74c943..760b66ff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -52,7 +52,7 @@ COPY condarc /opt/conda/.condarc RUN <..` (e.g. `11.2.2`) - - "11.8.0" - - "12.0.1" + # - "11.8.0" + # - "12.0.1" - "12.2.2" - "12.5.1" PYTHON_VER: