diff --git a/.github/actions/image-matrix/action.sh b/.github/actions/image-matrix/action.sh index 2ab15f42..8df58bf2 100755 --- a/.github/actions/image-matrix/action.sh +++ b/.github/actions/image-matrix/action.sh @@ -31,22 +31,21 @@ features="$(echo \ || echo '' \ )"; -if `# Include all images if full_matrix is true` \ - [ "${full_matrix}" == "1" ] \ - `# Include all images if matrix or workflows changed` \ -|| grep -q 'matrix\.yml' <<< "${files}" \ -|| grep -q '\.github/workflows/test\.yml' <<< "${files}" \ -|| grep -q '\.github/actions/build-linux-image/action\.yml' <<< "${files}" \ -|| grep -q '\.github/actions/image-matrix/action\.sh' <<< "${files}" \ -|| grep -q '\.github/actions/image-matrix/action\.yml' <<< "${files}" \ -|| grep -q '\.github/workflows/build-and-test-image\.yml' <<< "${files}" \ - `# Include all images if cmake, ninja, sccache, ` \ - `# gitlab-cli, or utils features changed` \ -|| grep -qE "(${common_features})" <<< "${features}" \ +if `# Include all images if full_matrix is true` \ + [ "${full_matrix}" == "1" ] \ + `# Include all images if matrix or workflows changed` \ +|| grep -q 'matrix\.yml' <<< "${files}" \ +|| grep -q '\.github/actions/build-linux-image/' <<< "${files}" \ +|| grep -q '\.github/actions/image-matrix/' <<< "${files}" \ +|| grep -q '\.github/workflows/test\.yml' <<< "${files}" \ +|| grep -q '\.github/workflows/build-test-and-push-linux-image\.yml' <<< "${files}" \ + `# Include all images if cmake, ninja, sccache, ` \ + `# gitlab-cli, or utils features changed` \ +|| grep -qE "(${common_features})" <<< "${features}" \ ; then - features="$( \ - find features/src -mindepth 1 -maxdepth 1 -type d -print0 \ - | xargs -0 -r -I% sh -c 'echo -n "\"$(basename %)\","' \ + features="$( \ + find features/src -mindepth 1 -maxdepth 1 -type d -print0 \ + | xargs -0 -r -I% sh -c 'echo -n "\"$(basename %)\","' \ )"; features="[${features%,}]"; fi diff --git a/.github/actions/image-matrix/action.yml b/.github/actions/image-matrix/action.yml index 372202a4..856ccb5e 100644 --- a/.github/actions/image-matrix/action.yml +++ b/.github/actions/image-matrix/action.yml @@ -37,12 +37,13 @@ runs: image/* windows/** matrix.yml - .github/**/*windows* - .github/actions/build-linux-image/action.yml - .github/actions/image-matrix/action.sh - .github/actions/image-matrix/action.yml + .github/actions/build-linux-image/* + .github/actions/build-windows-image/* + .github/actions/image-matrix/* + .github/actions/test-windows-image/* .github/workflows/test.yml - .github/workflows/build-and-test-image.yml + .github/workflows/build-test-and-push-linux-image.yml + .github/workflows/build-test-and-push-windows-image.yml - name: Report changes if: inputs.full_matrix != 'true' diff --git a/.github/workflows/release-windows.yml b/.github/workflows/release-windows.yml new file mode 100644 index 00000000..d9e3de06 --- /dev/null +++ b/.github/workflows/release-windows.yml @@ -0,0 +1,43 @@ +name: Release Windows + +concurrency: + group: release-windows-on-${{ github.event_name }}-from-${{ github.ref_name }} + cancel-in-progress: true + +on: + workflow_dispatch: + +jobs: + + image-matrix: + name: Determine image matrix + runs-on: ubuntu-latest + outputs: + windows: ${{ steps.matrix.outputs.windows }} + steps: + - name: Checkout ${{ github.repository }} + uses: actions/checkout@v4 + with: + fetch-depth: 0 + persist-credentials: false + + - id: matrix + name: Determine image matrix + uses: ./.github/actions/image-matrix + with: + full_matrix: 'true' + + build-and-push-windows-images: + name: ${{ matrix.name }} + needs: image-matrix + secrets: inherit + uses: ./.github/workflows/build-test-and-push-windows-image.yml + strategy: + fail-fast: false + matrix: ${{ fromJSON(needs.image-matrix.outputs.windows) }} + with: + push: 'true' + os: "${{ matrix.os }}" + features: "${{ toJSON(matrix.features) }}" + container_env: "${{ toJSON(matrix.env) }}" + repo: "${{ vars.DOCKERHUB_REPOSITORY || github.repository }}" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 10d71a97..546bab65 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,7 +14,6 @@ jobs: runs-on: ubuntu-latest outputs: linux: ${{ steps.matrix.outputs.linux }} - windows: ${{ steps.matrix.outputs.windows }} steps: - name: Checkout ${{ github.repository }} uses: actions/checkout@v4 @@ -43,21 +42,6 @@ jobs: container_env: "${{ toJSON(matrix.env) }}" repo: "${{ vars.DOCKERHUB_REPOSITORY || github.repository }}" - build-and-push-windows-images: - name: ${{ matrix.name }} - needs: image-matrix - secrets: inherit - uses: ./.github/workflows/build-test-and-push-windows-image.yml - strategy: - fail-fast: false - matrix: ${{ fromJSON(needs.image-matrix.outputs.windows) }} - with: - push: 'true' - os: "${{ matrix.os }}" - features: "${{ toJSON(matrix.features) }}" - container_env: "${{ toJSON(matrix.env) }}" - repo: "${{ vars.DOCKERHUB_REPOSITORY || github.repository }}" - release-features: needs: build-and-push-linux-images name: Release Features diff --git a/ci/release/update-version.sh b/ci/release/update-version.sh index db604d6e..40500fef 100755 --- a/ci/release/update-version.sh +++ b/ci/release/update-version.sh @@ -42,7 +42,7 @@ sed_runner "s|features/\([[:alnum:]]\+\):[[:digit:]]\+\.[[:digit:]]\+\"|features for file in $(find .devcontainer -name devcontainer.json); do sed_runner "s|rapidsai/devcontainers:.*-cpp|rapidsai/devcontainers:${NEXT_SHORT_TAG}-cpp|g" "$file" - sed_runner "s@rapids-\${localWorkspaceFolderBasename}-${CURRENT_SHORT_TAG}@rapids-\${localWorkspaceFolderBasename}-${NEXT_SHORT_TAG}@g" "${file}" + sed_runner "s@rapids-\${localWorkspaceFolderBasename}-[0-9.]*@rapids-\${localWorkspaceFolderBasename}-${NEXT_SHORT_TAG}@g" "${file}" done sed_runner "s/branch-[[:digit:]]\{2\}\.[[:digit:]]\+/branch-${NEXT_SHORT_TAG}/g" ./features/src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml diff --git a/features/src/rapids-build-utils/devcontainer-feature.json b/features/src/rapids-build-utils/devcontainer-feature.json index bebb052c..b4cc95a6 100644 --- a/features/src/rapids-build-utils/devcontainer-feature.json +++ b/features/src/rapids-build-utils/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "NVIDIA RAPIDS devcontainer build utilities", "id": "rapids-build-utils", - "version": "24.6.12", + "version": "24.6.13", "description": "A feature to install the RAPIDS devcontainer build utilities", "containerEnv": { "BASH_ENV": "/etc/bash.bash_env" diff --git a/features/src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml b/features/src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml index b3d97e28..ce9123eb 100755 --- a/features/src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml +++ b/features/src/rapids-build-utils/opt/rapids-build-utils/manifest.yaml @@ -89,7 +89,7 @@ repos: args: {cmake: -DFIND_RAFT_CPP=ON} - name: raft-dask sub_dir: python/raft-dask - depends: [raft] + depends: [ucxx, raft] args: {cmake: -DFIND_RAFT_CPP=ON} - name: cuvs diff --git a/features/src/rust/devcontainer-feature.json b/features/src/rust/devcontainer-feature.json index f401da81..058ecc32 100644 --- a/features/src/rust/devcontainer-feature.json +++ b/features/src/rust/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "rust", - "version": "24.6.1", + "version": "24.6.2", "name": "Rust", "documentationURL": "https://github.com/rapidsai/devcontainers/features/tree/main/src/rust", "description": "Installs Rust, common Rust utilities, and their required dependencies", diff --git a/features/src/rust/install.sh b/features/src/rust/install.sh index 828a0b3c..c5cacafd 100644 --- a/features/src/rust/install.sh +++ b/features/src/rust/install.sh @@ -113,6 +113,7 @@ else curl -sSL --proto '=https' --tlsv1.2 "https://static.rust-lang.org/rustup/dist/${download_architecture}-unknown-linux-gnu/rustup-init" -o /tmp/rustup/target/${download_architecture}-unknown-linux-gnu/release/rustup-init; curl -sSL --proto '=https' --tlsv1.2 "https://static.rust-lang.org/rustup/dist/${download_architecture}-unknown-linux-gnu/rustup-init.sha256" -o /tmp/rustup/rustup-init.sha256; cd /tmp/rustup; + cp /tmp/rustup/target/${download_architecture}-unknown-linux-gnu/release/rustup-init /tmp/rustup/rustup-init sha256sum -c rustup-init.sha256; chmod +x target/${download_architecture}-unknown-linux-gnu/release/rustup-init; target/${download_architecture}-unknown-linux-gnu/release/rustup-init -y --no-modify-path --profile ${RUSTUP_PROFILE} ${default_toolchain_arg};