Update TheRock reference to (6c16ef2) #61600
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: TheRock CI | |
| on: | |
| push: | |
| branches: | |
| - develop | |
| - release/therock-* | |
| pull_request: | |
| types: | |
| - opened | |
| - synchronize | |
| - reopened | |
| - labeled | |
| workflow_dispatch: | |
| inputs: | |
| projects: | |
| type: string | |
| description: "Insert space-separated list of projects to test or 'all' to test all projects. ex: 'projects/clr projects/rocminfo'" | |
| linux_amdgpu_families: | |
| type: string | |
| description: "Insert comma-separated list of Linux GPU families to build and test. ex: gfx94X, gfx950" | |
| default: "" | |
| windows_amdgpu_families: | |
| type: string | |
| description: "Insert comma-separated list of Windows GPU families to build and test. ex: gfx1151" | |
| default: "" | |
| permissions: | |
| contents: read | |
| concurrency: | |
| # A PR number if a pull request and otherwise the commit hash. This cancels | |
| # queued and in-progress runs for the same PR (presubmit) or commit | |
| # (postsubmit). The workflow name is prepended to avoid conflicts between | |
| # different workflows. | |
| group: ${{ github.workflow }}-${{ github.event.number || github.sha }} | |
| cancel-in-progress: true | |
| jobs: | |
| setup: | |
| name: "Setup" | |
| runs-on: ubuntu-24.04 | |
| env: | |
| # The commit being checked out is the merge commit for a PR. Its first | |
| # parent will be the tip of the base branch. | |
| BASE_REF: HEAD^ | |
| outputs: | |
| linux_projects: ${{ steps.linux_projects.outputs.projects }} | |
| windows_projects: ${{ steps.windows_projects.outputs.projects }} | |
| run_linux_rccl_ci: ${{ steps.linux_projects.outputs.run_linux_rccl_ci }} | |
| run_mi455_test: ${{ steps.linux_projects.outputs.run_mi455_test }} | |
| test_type: ${{ steps.linux_projects.outputs.test_type }} | |
| package_version: ${{ steps.rocm_package_version.outputs.rocm_package_version }} | |
| linux_package_targets: ${{ steps.configure_linux.outputs.package_targets }} | |
| windows_package_targets: ${{ steps.configure_windows.outputs.package_targets }} | |
| linux_build_runs_on: ${{ steps.linux_projects.outputs.build_runs_on }} | |
| windows_build_runs_on: ${{ steps.windows_projects.outputs.build_runs_on }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| sparse-checkout: .github | |
| sparse-checkout-cone-mode: true | |
| fetch-depth: 2 | |
| - name: Set up Python | |
| uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 | |
| with: | |
| python-version: "3.12" | |
| - name: Install python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install pydantic pytest requests | |
| - name: Run TheRock CI unit tests | |
| run: python -m pytest .github/scripts/tests/therock_configure_ci_test.py | |
| - name: Checkout TheRock repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| repository: "ROCm/TheRock" | |
| path: TheRock | |
| ref: d5287602f01bb9e2f0c644f2b6f129b043eb1a0c # 2026-08-18 | |
| - name: Checkout CI config | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| repository: ROCm/therock-ci-config | |
| ref: main | |
| path: ci-config | |
| continue-on-error: true | |
| - name: Detect changed subtrees | |
| id: detect | |
| if: github.event_name == 'pull_request' | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| python .github/scripts/pr_detect_changed_subtrees.py \ | |
| --repo "${{ github.repository }}" \ | |
| --pr "${{ github.event.pull_request.number }}" \ | |
| --config ".github/repos-config.json" | |
| - name: Set PR_LABELS variable with labels assigned to pull request | |
| if: ${{ github.event.pull_request }} | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| PR_NUMBER: ${{ github.event.number }} | |
| run: | | |
| echo "PR_LABELS=$(gh pr view ${PR_NUMBER} --json labels)" >> $GITHUB_ENV | |
| - name: Determine Linux projects to run | |
| id: linux_projects | |
| env: | |
| SUBTREES: ${{ steps.detect.outputs.subtrees }} | |
| PROJECTS: ${{ inputs.projects }} | |
| PLATFORM: "linux" | |
| run: | | |
| python .github/scripts/therock_configure_ci.py | |
| - name: Determine Windows projects to run | |
| id: windows_projects | |
| env: | |
| SUBTREES: ${{ steps.detect.outputs.subtrees }} | |
| PROJECTS: ${{ inputs.projects }} | |
| PLATFORM: "windows" | |
| run: | | |
| python .github/scripts/therock_configure_ci.py | |
| - name: Compute package version | |
| id: rocm_package_version | |
| run: | | |
| python TheRock/build_tools/compute_rocm_package_version.py --release-type=dev | |
| - name: Fetch Linux targets for build and test | |
| env: | |
| THEROCK_PACKAGE_PLATFORM: "linux" | |
| AMDGPU_FAMILIES: ${{ inputs.linux_amdgpu_families || 'gfx94X, gfx950' }} | |
| CI_CONFIG_PATH: ci-config | |
| id: configure_linux | |
| run: python ./TheRock/build_tools/github_actions/fetch_package_targets.py | |
| - name: Fetch Windows targets for build and test | |
| env: | |
| THEROCK_PACKAGE_PLATFORM: "windows" | |
| AMDGPU_FAMILIES: ${{ inputs.windows_amdgpu_families || 'gfx1151' }} | |
| CI_CONFIG_PATH: ci-config | |
| id: configure_windows | |
| run: python ./TheRock/build_tools/github_actions/fetch_package_targets.py | |
| therock-ci-linux: | |
| name: Linux (${{ matrix.projects.projects_to_test }} | ${{ matrix.target_bundle.amdgpu_family }}) | |
| permissions: | |
| contents: read | |
| id-token: write | |
| needs: setup | |
| if: ${{ needs.setup.outputs.linux_projects != '[]' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| projects: ${{ fromJSON(needs.setup.outputs.linux_projects) }} | |
| target_bundle: ${{ fromJSON(needs.setup.outputs.linux_package_targets) }} | |
| uses: ./.github/workflows/therock-ci-linux.yml | |
| with: | |
| cmake_options: ${{ matrix.projects.cmake_options }} | |
| projects_to_test: ${{ matrix.projects.projects_to_test }} | |
| test_type: ${{ needs.setup.outputs.test_type }} | |
| package_version: ${{ needs.setup.outputs.package_version }} | |
| amdgpu_families: ${{ matrix.target_bundle.amdgpu_family }} | |
| test_runs_on: ${{ matrix.target_bundle.test_machine }} | |
| build_runs_on: ${{ needs.setup.outputs.linux_build_runs_on }} | |
| # TEMPORARY: MI455 (gfx125X) Build - Blocking job (included in summary) | |
| # Separated from therock-ci-linux matrix so MI455 tests can depend only on this | |
| # build, not on other families' tests which may take longer. | |
| # TODO: Remove this separate job once MI455 test infrastructure is stable and | |
| # we have sufficient MI455 machine capacity to run tests without blocking PRs. | |
| therock-build-linux-mi455: | |
| name: Linux MI455 Build (gfx125X-dcgpu) | |
| permissions: | |
| contents: read | |
| id-token: write | |
| needs: setup | |
| # Build always runs for all PRs; tests are gated separately by run_mi455_test | |
| if: ${{ needs.setup.outputs.linux_projects != '[]' }} | |
| uses: ./.github/workflows/therock-build-linux.yml | |
| with: | |
| package_version: ${{ needs.setup.outputs.package_version }} | |
| amdgpu_families: gfx125X-dcgpu | |
| build_runs_on: ${{ needs.setup.outputs.linux_build_runs_on }} | |
| # TEMPORARY: MI455 (gfx125X) Test - Non-blocking job (excluded from summary) | |
| # This job is intentionally excluded from therock_ci_summary to avoid blocking PRs. | |
| # MI455 machines are limited, so jobs may queue for extended periods. By keeping | |
| # tests separate, PRs can still merge while MI455 tests run or wait in queue. | |
| # TODO: Remove this separate job once MI455 test infrastructure is stable and | |
| # we have sufficient MI455 machine capacity to run tests without blocking PRs. | |
| therock-test-linux-mi455: | |
| name: Linux MI455 Test | |
| needs: [setup, therock-build-linux-mi455] | |
| if: ${{ needs.setup.outputs.run_mi455_test == 'true' }} | |
| uses: ./.github/workflows/therock-test-packages.yml | |
| with: | |
| projects_to_test: "hip-tests, rocrtst" | |
| amdgpu_families: gfx125X-dcgpu | |
| test_runs_on: linux-mi455-gpu-rocm | |
| platform: linux | |
| artifact_run_id: ${{ github.run_id }} | |
| therock-rccl-ci-linux: | |
| name: TheRock RCCL CI Linux | |
| needs: setup | |
| if: ${{ needs.setup.outputs.run_linux_rccl_ci == 'true' }} | |
| permissions: | |
| contents: read | |
| id-token: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| amdgpu_family: [gfx94X-dcgpu, gfx950-dcgpu] | |
| uses: ./.github/workflows/therock-rccl-ci-linux.yml | |
| with: | |
| amdgpu_families: ${{ matrix.amdgpu_family }} | |
| artifact_group: ${{ matrix.amdgpu_family }} | |
| package_version: ${{ needs.setup.outputs.package_version }} | |
| cmake_options: > | |
| -DTHEROCK_ENABLE_ALL=OFF | |
| -DTHEROCK_BUILD_TESTING=ON | |
| -DTHEROCK_BUNDLE_SYSDEPS=ON | |
| -DTHEROCK_ENABLE_COMM_LIBS=ON | |
| -DTHEROCK_ENABLE_ROCPROFV3=ON | |
| -DTHEROCK_ENABLE_MPI=ON | |
| therock-ci-windows: | |
| name: Windows (${{ matrix.projects.projects_to_test }} | ${{ matrix.target_bundle.amdgpu_family }}) | |
| permissions: | |
| contents: read | |
| id-token: write | |
| needs: setup | |
| if: ${{ needs.setup.outputs.windows_projects != '[]' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| projects: ${{ fromJSON(needs.setup.outputs.windows_projects) }} | |
| target_bundle: ${{ fromJSON(needs.setup.outputs.windows_package_targets) }} | |
| uses: ./.github/workflows/therock-ci-windows.yml | |
| with: | |
| cmake_options: ${{ matrix.projects.cmake_options }} | |
| projects_to_test: ${{ matrix.projects.projects_to_test }} | |
| test_type: ${{ needs.setup.outputs.test_type }} | |
| package_version: ${{ needs.setup.outputs.package_version }} | |
| amdgpu_families: ${{ matrix.target_bundle.amdgpu_family }} | |
| test_runs_on: ${{ matrix.target_bundle.test_machine }} | |
| build_runs_on: ${{ needs.setup.outputs.windows_build_runs_on }} | |
| therock_ci_summary: | |
| name: TheRock CI Summary | |
| if: always() | |
| needs: | |
| - setup | |
| - therock-ci-linux | |
| - therock-build-linux-mi455 | |
| - therock-rccl-ci-linux | |
| - therock-ci-windows | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Output failed jobs | |
| 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 |