name: TheRock CI Linux for rccl on: workflow_call: inputs: amdgpu_families: type: string artifact_group: type: string event_name: type: string default: '' package_version: type: string default: "" cmake_options: type: string artifact_run_id: type: string default: '' test_scope: description: 'Test scope: smoke (22 curated tests) or all' type: string default: 'smoke' notify_email: type: string default: '' notify_webhook: type: string default: '' permissions: contents: read jobs: therock-build-linux: name: Build Linux Packages # Skipped when artifact_run_id is provided (reuse mode). Downstream jobs # use `!cancelled()` in their `if:` so they still run when this is skipped. if: ${{ inputs.artifact_run_id == '' }} runs-on: azure-linux-scale-rocm permissions: id-token: write container: image: ghcr.io/rocm/therock_build_manylinux_x86_64@sha256:48492540591673fdc8d51beb89bde41e7ba13cbb528f643c0a481ba42c4058f2 # 2026-04-16 env: AMDGPU_FAMILIES: ${{ inputs.amdgpu_families }} TEATIME_FORCE_INTERACTIVE: 0 CACHE_DIR: ${{ github.workspace }}/.container-cache # The ccache.conf will be written by setup_ccache.py before this gets used. CCACHE_CONFIGPATH: ${{ github.workspace }}/.ccache/ccache.conf steps: - name: "Checking out repository for rocm-systems" uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Checkout TheRock repository uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: "ROCm/TheRock" path: "TheRock" ref: release/therock-10.0 - name: Install python deps run: | pip install -r TheRock/requirements.txt # safe.directory must be set before Runner Health Status - name: Adjust git config run: | git config --global --add safe.directory $PWD git config fetch.parallel 10 - name: Setup ccache run: | ./TheRock/build_tools/setup_ccache.py \ --config-preset "github-oss-dev" \ --dir "$(dirname $CCACHE_CONFIGPATH)" \ --local-path "$CACHE_DIR/ccache" - name: Runner health status run: | ./TheRock/build_tools/health_status.py - name: Fetch sources run: | ./TheRock/build_tools/fetch_sources.py --jobs 12 --no-include-rocm-systems - name: Patch rocm-systems run: | # Remove patches here if they cannot be applied cleanly, and they have not been deleted from TheRock repo # rm ./TheRock/patches/amd-mainline/rocm-systems/0003-Use-is_versioned-true-consistently-in-both-Comgr-Loa.patch - name: Configure Projects env: amdgpu_families: ${{ env.AMDGPU_FAMILIES }} package_version: ${{ inputs.package_version }} extra_cmake_options: "-DTHEROCK_ROCM_SYSTEMS_SOURCE_DIR=../ ${{ inputs.cmake_options }}" BUILD_DIR: build run: | python3 ./TheRock/build_tools/github_actions/build_configure.py - name: Build therock-dist run: cmake --build TheRock/build - name: Build therock-artifacts run: cmake --build TheRock/build --target therock-artifacts - name: Report #if: ${{ !cancelled() }} run: | echo "Full SDK du:" echo "------------" du -h -d 1 TheRock/build/dist/rocm echo "Artifacts:" echo "----------" du -h -d 1 TheRock/build/artifacts echo "CCache Stats:" echo "-------------" ccache -s -v tail -v -n +1 .ccache/compiler_check_cache/* > TheRock/build/logs/ccache_compiler_check_cache.log - name: Configure AWS Credentials for non-forked repos if: ${{ always() && !github.event.pull_request.head.repo.fork }} uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1 with: aws-region: us-east-2 role-to-assume: arn:aws:iam::692859939525:role/therock-artifacts-external - name: Push artifacts run: | python3 TheRock/build_tools/artifact_manager.py push \ --run-id ${{ github.run_id }} \ --build-dir TheRock/build \ --stage all - name: Post Build Upload if: always() run: | python3 TheRock/build_tools/github_actions/post_build_upload.py \ --run-id ${{ github.run_id }} \ --artifact-group ${{ env.AMDGPU_FAMILIES }} \ --build-dir TheRock/build \ --upload therock-test-linux-multi-node: name: "Test multi-node" # TODO: Re-enable gfx94X-dcgpu and gfx950-dcgpu multi-node tests once the clusters are stable again. if: false permissions: contents: read id-token: write needs: [therock-build-linux] uses: ./.github/workflows/therock-rccl-test-packages-multi-node.yml with: amdgpu_families: ${{ inputs.amdgpu_families }} artifact_group: ${{ inputs.artifact_group }} test_runs_on: ruby-linux-slurm-scale-runner artifact_run_id: ${{ inputs.artifact_run_id || github.run_id }} therock-test-linux-single-node: name: "Test single-node" # TODO(TheRock#3288): Re-enable gfx950-dcgpu runners once we get more capacity if: ${{ !cancelled() && inputs.amdgpu_families != 'gfx950-dcgpu' }} needs: [therock-build-linux] uses: ./.github/workflows/therock-rccl-test-packages-single-node.yml with: amdgpu_families: ${{ inputs.amdgpu_families }} artifact_group: ${{ inputs.artifact_group }} test_runs_on: linux-gfx942-8gpu-ossci-rocm artifact_run_id: ${{ inputs.artifact_run_id || github.run_id }} therock-test-pytorch-distributed: name: "Test PyTorch distributed (scheduled)" if: ${{ !cancelled() && inputs.amdgpu_families != 'gfx950-dcgpu' && (inputs.event_name == 'schedule' || inputs.event_name == 'workflow_dispatch') }} needs: [therock-build-linux] uses: ./.github/workflows/therock-rccl-test-pytorch-distributed.yml with: amdgpu_families: ${{ inputs.amdgpu_families }} artifact_group: ${{ inputs.artifact_group }} test_runs_on: linux-gfx942-8gpu-ossci-rocm artifact_run_id: ${{ inputs.artifact_run_id || github.run_id }} test_scope: ${{ inputs.test_scope }} notify_email: ${{ inputs.notify_email }} notify_webhook: ${{ inputs.notify_webhook }} therock-test-jax-collective: name: "Test JAX collective (scheduled)" if: ${{ !cancelled() && inputs.amdgpu_families != 'gfx950-dcgpu' && (inputs.event_name == 'schedule' || inputs.event_name == 'workflow_dispatch') }} needs: [therock-build-linux] uses: ./.github/workflows/therock-rccl-test-jax-collective.yml with: amdgpu_families: ${{ inputs.amdgpu_families }} artifact_group: ${{ inputs.artifact_group }} test_runs_on: linux-gfx942-8gpu-ossci-rocm artifact_run_id: ${{ inputs.artifact_run_id || github.run_id }} notify_email: ${{ inputs.notify_email }} notify_webhook: ${{ inputs.notify_webhook }} therock-test-rocprof: name: "Test rocprofv3 smoke" if: ${{ !cancelled() && inputs.amdgpu_families != 'gfx950-dcgpu' }} needs: [therock-build-linux] uses: ./.github/workflows/therock-rccl-test-rocprof.yml with: amdgpu_families: ${{ inputs.amdgpu_families }} artifact_group: ${{ inputs.artifact_group }} test_runs_on: linux-gfx942-8gpu-ossci-rocm artifact_run_id: ${{ inputs.artifact_run_id || github.run_id }} notify_email: ${{ inputs.notify_email }} notify_webhook: ${{ inputs.notify_webhook }}