CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
150 lines
5.2 KiB
YAML
150 lines
5.2 KiB
YAML
# NVIDIA build is separate from theRock CI due to multiple issues:
|
|
# 1. We do not want to publish any CUDA based artifacts.
|
|
# 2. CLR builds are parallel to the rest of the monorepo: we neither consume anything upstream, nor impact any downstream projects.
|
|
# Hence, the check is independent from the rest of the CI
|
|
name: HIP NVIDIA CI
|
|
|
|
on:
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- synchronize
|
|
- reopened
|
|
push:
|
|
branches:
|
|
- develop
|
|
- release/therock-*
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
nvidia-clr-build-setup:
|
|
name: "Setup"
|
|
runs-on: ubuntu-24.04
|
|
env:
|
|
BASE_REF: HEAD^
|
|
outputs:
|
|
should_build: ${{ steps.check_paths.outputs.should_build }}
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
fetch-depth: 2
|
|
|
|
- name: Check if relevant paths changed
|
|
id: check_paths
|
|
run: |
|
|
SHOULD_BUILD=false
|
|
|
|
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
|
SHOULD_BUILD=true;
|
|
else
|
|
CHANGED_FILES=$(git diff --name-only "${BASE_REF}")
|
|
echo "Changed files:"
|
|
echo "${CHANGED_FILES}"
|
|
if echo "${CHANGED_FILES}" | grep -qE '^projects/(clr|hip|hip-tests|hipother)/|^\.github/workflows/hip-nvidia-ci\.yml'; then
|
|
SHOULD_BUILD=true
|
|
else
|
|
echo "No changes in clr/hip/hip-tests/hipother — skipping NVIDIA build"
|
|
fi
|
|
fi
|
|
echo "should_build=${SHOULD_BUILD}" >> "${GITHUB_OUTPUT}"
|
|
|
|
nvidia-clr-build:
|
|
name: "Build clr + hip-tests (NVIDIA)"
|
|
needs: nvidia-clr-build-setup
|
|
if: ${{ needs.nvidia-clr-build-setup.outputs.should_build == 'true' }}
|
|
runs-on: azure-linux-scale-rocm
|
|
container:
|
|
# CUDA 13.2.0 devel Ubuntu 24.04
|
|
image: nvidia/cuda@sha256:d266e59b88c295bc5fa0e4cef9064eaff84939381b09e2c3d76a5532a303e42d
|
|
env:
|
|
BUILD_DIR: ${{ github.workspace }}/build
|
|
steps:
|
|
- name: Checkout rocm-systems
|
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
path: rocm-systems
|
|
sparse-checkout: |
|
|
projects/clr
|
|
projects/hip
|
|
projects/hip-tests
|
|
projects/hipother
|
|
|
|
- name: Checkout llvm-project repository # we only need hipcc to build HIP on nvidia platform
|
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
repository: "ROCm/llvm-project"
|
|
path: "llvm-project"
|
|
ref: 43215c73116c407735c85a180d174f718798c328 # 2026-04-14 bump in TheRock
|
|
sparse-checkout: |
|
|
amd/hipcc
|
|
|
|
- name: Install system dependencies
|
|
run: |
|
|
apt-get update -q
|
|
apt-get install -y --no-install-recommends git cmake ninja-build llvm-dev libnuma-dev libelf-dev libdrm-dev python3-dev python3-pip pkg-config
|
|
|
|
- name: Build hipconfig
|
|
run: |
|
|
cmake -S llvm-project/amd/hipcc -B "${BUILD_DIR}/hipcc" -G Ninja -DCMAKE_BUILD_TYPE=Release
|
|
cmake --build "${BUILD_DIR}/hipcc" --target hipconfig --parallel
|
|
mkdir -p "${BUILD_DIR}/hipcc-install/bin"
|
|
cp "${BUILD_DIR}/hipcc/hipconfig" "${BUILD_DIR}/hipcc-install/bin/"
|
|
ln -s "$(which nvcc)" "${BUILD_DIR}/hipcc-install/bin/hipcc"
|
|
|
|
- name: Configure clr (NVIDIA platform)
|
|
run: |
|
|
cmake -B "${BUILD_DIR}/clr" -G Ninja \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DHIP_PLATFORM=nvidia \
|
|
-DCLR_BUILD_HIP=ON \
|
|
-DCLR_BUILD_OCL=OFF \
|
|
-DHIP_COMMON_DIR="${GITHUB_WORKSPACE}/rocm-systems/projects/hip" \
|
|
-DHIPNV_DIR="${GITHUB_WORKSPACE}/rocm-systems/projects/hipother/hipnv" \
|
|
-DHIPCC_BIN_DIR="${BUILD_DIR}/hipcc-install/bin" \
|
|
-DCMAKE_INSTALL_PREFIX="${BUILD_DIR}/clr-install" \
|
|
"${GITHUB_WORKSPACE}/rocm-systems/projects/clr/"
|
|
|
|
- name: Build clr
|
|
run: cmake --build "${BUILD_DIR}/clr" --parallel
|
|
|
|
- name: Install clr
|
|
run: cmake --install "${BUILD_DIR}/clr"
|
|
|
|
- name: Configure hip-tests (NVIDIA platform)
|
|
run: |
|
|
cmake -B "${BUILD_DIR}/hip-tests" -G Ninja \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DHIP_PLATFORM=nvidia \
|
|
-DHIPCC_BIN_DIR="${BUILD_DIR}/clr-install/bin" \
|
|
-DCMAKE_PREFIX_PATH="${BUILD_DIR}/clr-install" \
|
|
"${GITHUB_WORKSPACE}/rocm-systems/projects/hip-tests/catch"
|
|
|
|
- name: Build hip-tests
|
|
run: cmake --build "${BUILD_DIR}/hip-tests" --parallel
|
|
|
|
nvidia-clr-build-ci-summary:
|
|
name: "HIP NVIDIA CI Summary"
|
|
if: always()
|
|
needs: [nvidia-clr-build-setup, nvidia-clr-build]
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- name: Check results
|
|
run: |
|
|
echo '${{ toJson(needs) }}'
|
|
FAILED_JOBS="$(echo '${{ toJson(needs) }}' \
|
|
| jq --raw-output \
|
|
'map_values(select(.result != "success" and .result != "skipped")) | keys | join(",")'
|
|
)"
|
|
if [[ "${FAILED_JOBS}" != "" ]]; then
|
|
echo "The following jobs failed: ${FAILED_JOBS}"
|
|
exit 1
|
|
fi
|