Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 107 additions & 0 deletions .github/workflows/test_artifacts_structure.yml

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some background:

Stub workflows are needed whenever forking from the current github workflow run to a separate workflow run via uses: benc-uk/workflow-dispatch (see https://github.com/ROCm/TheRock/blob/main/.github/workflows/multi_arch_release_linux.yml). They are not needed when just using uses: ./.github/workflows

We currently dispatch for

  • GPU artifact testing with test_artifacts.yml
  • package install testing with test_native_linux_packages_install.yml
  • pytorch build/testing
  • jax build/testing

The reasons we dispatch instead of including in the current workflow run include:

This particular test_artifacts_structure.yml workflow runs on CPU machines after the build, and we do run some other CPU tests during the build. I could see cases for either:

  1. Running these tests in the current workflow run, without workflow_dispatch
  2. Not running these tests for releases as they should already be tested by CI (weak argument)
  3. Refactoring this and other jobs into "trigger test rocm [cpu]" (which would include this and parts of trigger_test_native_install) and "trigger test rocm [gpu]" (which could include "trigger_test_artifacts_per_family" and parts of "trigger test rocm wheels")
  4. Keeping the current split of "feature type" -> "test workflow" (one for native linux, one for python, one for artifacts, etc.)

Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Copyright Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

name: Test Artifact Structure

on:
workflow_dispatch:
inputs:
artifact_run_id:
description: "GitHub Actions run ID containing the artifacts"
required: true
type: string

artifact_github_repo:
description: "Repository containing the artifact run"
required: false
default: "ROCm/rockrel"
type: string

amdgpu_families:
description: "Semicolon-separated GPU families, for example gfx94X-dcgpu;gfx120X-all"
required: false
default: ""
type: string

platform:
description: "Artifact platform"
required: false
default: "linux"
type: choice
options:
- linux
- windows

release_type:
description: "Release type: ci or dev"
required: false
default: "ci"
type: choice
options:
- ci
- dev

repository:
description: "Repository containing the test code"
required: false
default: "ROCm/TheRock"
type: string

ref:
description: "TheRock branch, tag, or SHA"
required: false
default: "main"
type: string

workflow_call:
inputs:
artifact_run_id:
required: true
type: string

artifact_github_repo:
required: false
default: "ROCm/rockrel"
type: string

amdgpu_families:
required: false
default: ""
type: string

platform:
required: false
default: "linux"
type: string

release_type:
required: false
default: "ci"
type: string

repository:
required: false
default: "ROCm/TheRock"
type: string

ref:
required: false
default: "main"
type: string

permissions:
contents: read
actions: read

jobs:
validate:
uses: ROCm/TheRock/.github/workflows/test_artifacts_structure.yml@main
secrets: inherit
with:
artifact_run_id: ${{ inputs.artifact_run_id }}
artifact_github_repo: ${{ inputs.artifact_github_repo }}
amdgpu_families: ${{ inputs.amdgpu_families }}
platform: ${{ inputs.platform }}
release_type: ${{ inputs.release_type }}
repository: ${{ inputs.repository }}
ref: ${{ inputs.ref }}
116 changes: 116 additions & 0 deletions .github/workflows/test_linux_jax_wheels.yml

@ScottTodd ScottTodd Aug 11, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not needed, see https://github.com/ROCm/TheRock/blob/a3e3f450db81b55f53a05581ebf52a21583c1126/.github/workflows/multi_arch_build_linux_jax_wheels.yml#L299-L306

  test_jax_wheels:
    if: ${{ inputs.test_amdgpu_family != '' }}
    needs: [build_jax_wheels, generate_target_to_run]
    name: Test | ${{ inputs.test_amdgpu_family }} | ${{ needs.generate_target_to_run.outputs.test_runs_on }}
    permissions:
      contents: read
      id-token: write
    uses: ./.github/workflows/test_multi_arch_linux_jax_wheels.yml

Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Copyright Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

# Thin wrapper that dispatches to TheRock's test_linux_jax_wheels.yml.

name: Test Linux JAX Wheels

on:
workflow_dispatch:
inputs:
amdgpu_family:
description: GPU family to test
required: true
type: string
default: "gfx94X-dcgpu"

release_type:
description: Release type
required: true
type: string
default: "dev"

package_index_url:
description: Base Python package index URL
required: true
type: string
default: "https://rocm.nightlies.amd.com/v2-staging/"

rocm_version:
description: ROCm version
required: false
type: string
default: ""

tar_url:
description: URL to the TheRock tarball
required: true
type: string

python_version:
description: Python version
required: true
type: string
default: "3.12"

jax_ref:
description: rocm-jax repository ref
required: false
type: string
default: "rocm-jaxlib-v0.11.0"

jax_version:
description: Base JAX version
required: false
type: string
default: ""

jaxlib_version:
description: jaxlib wheel version
required: false
type: string
default: ""

jax_plugin_version:
description: jax ROCm plugin wheel version
required: false
type: string
default: ""

jax_pjrt_version:
description: jax ROCm PJRT wheel version
required: false
type: string
default: ""

test_runs_on:
description: Runner label with a compatible GPU
required: true
type: string
default: "linux-gfx942-1gpu-ccs-csp-ossci-rocm"

repository:
description: Repository containing the test source
required: false
type: string
default: "ROCm/TheRock"

ref:
description: Branch, tag, or SHA containing the test source
required: false
type: string
default: "main"

permissions:
contents: read
packages: read

jobs:
test:
uses: ROCm/TheRock/.github/workflows/test_linux_jax_wheels.yml@main
secrets: inherit
with:
amdgpu_family: ${{ inputs.amdgpu_family }}
release_type: ${{ inputs.release_type }}
package_index_url: ${{ inputs.package_index_url }}
rocm_version: ${{ inputs.rocm_version }}
tar_url: ${{ inputs.tar_url }}
python_version: ${{ inputs.python_version }}
jax_ref: ${{ inputs.jax_ref }}
jax_version: ${{ inputs.jax_version }}
jaxlib_version: ${{ inputs.jaxlib_version }}
jax_plugin_version: ${{ inputs.jax_plugin_version }}
jax_pjrt_version: ${{ inputs.jax_pjrt_version }}
test_runs_on: ${{ inputs.test_runs_on }}
repository: ${{ inputs.repository }}
ref: ${{ inputs.ref }}
93 changes: 93 additions & 0 deletions .github/workflows/test_pytorch_wheels.yml

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not needed since the calling workflow https://github.com/ROCm/TheRock/blob/a3e3f450db81b55f53a05581ebf52a21583c1126/.github/workflows/multi_arch_build_portable_linux_pytorch_wheels.yml#L497-L519 has uses: ./.github/workflows/test_pytorch_wheels.yml

The test_pytorch_wheels_full.yml workflow does need a stub/wrapper workflow due to:

      - name: Dispatch full PyTorch test workflow
        if: ${{ steps.cadence.outputs.dispatch == 'true' }}
        uses: benc-uk/workflow-dispatch@31e2b3319479a63f0ab15bf800eff9e913504e26 # v1.3.2
        with:
          workflow: test_pytorch_wheels_full.yml

Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Copyright Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

# Thin wrapper that dispatches to TheRock's test_pytorch_wheels.yml.

name: Test PyTorch Wheels

on:
workflow_dispatch:
inputs:
amdgpu_family:
description: GPU family to test
required: true
type: string
default: "gfx94X-dcgpu"

test_runs_on:
description: Runner label with a compatible GPU
required: true
type: string
default: "linux-gfx942-1gpu-ccs-csp-ossci-rocm"

package_index_url:
description: Python package index URL
required: true
type: string
default: "https://rocm.nightlies.amd.com/whl-multi-arch/"

python_version:
description: Python version
required: true
type: string
default: "3.12"

torch_version:
description: Torch package version
required: true
type: string

pytorch_git_ref:
description: PyTorch source ref
required: false
type: string
default: "release/2.7"

device_query:
description: GPU candidate-set selection
required: false
type: choice
options:
- unique
- all
default: unique

gpu_policy:
description: Number of GPUs visible during each test
required: false
type: choice
options:
- single
- all
default: single

repository:
description: Repository containing the test source
required: false
type: string
default: "ROCm/TheRock"

ref:
description: Branch, tag, or SHA containing the test source
required: false
type: string
default: "main"

permissions:
contents: read

jobs:
test:
uses: ROCm/TheRock/.github/workflows/test_pytorch_wheels.yml@main
secrets: inherit
with:
amdgpu_family: ${{ inputs.amdgpu_family }}
test_runs_on: ${{ inputs.test_runs_on }}
package_index_url: ${{ inputs.package_index_url }}
python_version: ${{ inputs.python_version }}
torch_version: ${{ inputs.torch_version }}
pytorch_git_ref: ${{ inputs.pytorch_git_ref }}
device_query: ${{ inputs.device_query }}
gpu_policy: ${{ inputs.gpu_policy }}
repository: ${{ inputs.repository }}
ref: ${{ inputs.ref }}
Loading
Loading