[AMD][CI] Consolidate AMD workflows and retire ROCm 7.0 CI (#38632)
This commit is contained in:
@@ -53,9 +53,9 @@ jobs:
|
||||
id: select-workflows
|
||||
run: |
|
||||
if [[ -n "${{ inputs.job_filter }}" ]]; then
|
||||
echo "workflows=pr-test-amd-rocm720.yml" >> "$GITHUB_OUTPUT"
|
||||
echo "workflows=pr-test-amd.yml" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "workflows=pr-test-amd.yml,nightly-test-amd.yml,pr-test-amd-rocm720.yml,nightly-test-amd-rocm720.yml,nightly-amd-mi355x-disagg.yml" >> "$GITHUB_OUTPUT"
|
||||
echo "workflows=pr-test-amd.yml,nightly-test-amd.yml,nightly-amd-mi355x-disagg.yml" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Fetch Actions data snapshot
|
||||
@@ -106,7 +106,7 @@ jobs:
|
||||
python scripts/ci/utils/query_job_status.py \
|
||||
--repo ${{ github.repository }} \
|
||||
--job "${{ inputs.job_filter }}" \
|
||||
--workflow "pr-test-amd-rocm720.yml" \
|
||||
--workflow "pr-test-amd.yml" \
|
||||
--hours ${{ inputs.hours || '24' }} \
|
||||
--input-data-file ci-data/actions-job-snapshot.json \
|
||||
--summary
|
||||
@@ -119,8 +119,6 @@ jobs:
|
||||
outputs:
|
||||
pr_jobs: ${{ steps.parse.outputs.pr_jobs }}
|
||||
nightly_jobs: ${{ steps.parse.outputs.nightly_jobs }}
|
||||
pr_rocm700_jobs: ${{ steps.parse.outputs.pr_rocm700_jobs }}
|
||||
nightly_rocm700_jobs: ${{ steps.parse.outputs.nightly_rocm700_jobs }}
|
||||
disagg_jobs: ${{ steps.parse.outputs.disagg_jobs }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -131,21 +129,18 @@ jobs:
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
# Parse the default ROCm 7.2 PR gate (exclude utility jobs)
|
||||
# Parse the canonical multi-version AMD PR gate (exclude utility jobs)
|
||||
# Excluded: call-gate, check-changes, finish, cancel, check-all-jobs,
|
||||
# plus the stage waits -- they run on ubuntu-latest, so the
|
||||
# self-hosted-only snapshot has nothing for them. Keep the extra call:
|
||||
# its delegated GPU jobs use the explicit caller name as their prefix.
|
||||
# Job ids keep the -rocm720 lane suffix but display names no longer do,
|
||||
# so strip it to get the prefix query_job_status.py matches against.
|
||||
pr_jobs=$(yq -r '.jobs | keys | .[]' .github/workflows/pr-test-amd-rocm720.yml | \
|
||||
grep -v -E '^(call-gate|check-changes|pr-test-amd-rocm720-finish|cancel|check-all-jobs|wait-for-stage-[ab]-amd-rocm720)$' | \
|
||||
sed 's/-rocm720$//' | \
|
||||
pr_jobs=$(yq -r '.jobs | keys | .[]' .github/workflows/pr-test-amd.yml | \
|
||||
grep -v -E '^(call-gate|check-changes|pr-test-amd-finish|cancel|check-all-jobs|wait-for-stage-[ab]-amd)$' | \
|
||||
jq -R -s -c 'split("\n") | map(select(length > 0))')
|
||||
echo "pr_jobs=$pr_jobs" >> $GITHUB_OUTPUT
|
||||
echo "PR jobs: $pr_jobs"
|
||||
|
||||
# Parse the default ROCm 7.2 nightly (exclude utility jobs)
|
||||
# Parse the canonical multi-version AMD nightly (exclude utility jobs)
|
||||
# Excluded: check-all-jobs
|
||||
# One nightly run covers every flavor, so ask for each by its full name:
|
||||
# a stem-only prefix matches every flavor and merges them into a single
|
||||
@@ -153,33 +148,15 @@ jobs:
|
||||
# names carry the runner too, so pair each job id with its runs-on.
|
||||
# Keep in sync with the rocm_version matrix in the nightly workflow.
|
||||
rocm_flavors="rocm10 rocm724 rocm720"
|
||||
nightly_jobs=$(yq -r '.jobs | to_entries[] | .key + " " + .value."runs-on"' .github/workflows/nightly-test-amd-rocm720.yml | \
|
||||
nightly_jobs=$(yq -r '.jobs | to_entries[] | .key + " " + .value."runs-on"' .github/workflows/nightly-test-amd.yml | \
|
||||
grep -v -E '^check-all-jobs ' | \
|
||||
while read -r id runner; do
|
||||
stem=${id%-rocm720}
|
||||
for f in $rocm_flavors; do echo "$stem ($f, $runner)"; done
|
||||
for f in $rocm_flavors; do echo "$id ($f, $runner)"; done
|
||||
done | \
|
||||
jq -R -s -c 'split("\n") | map(select(length > 0))')
|
||||
echo "nightly_jobs=$nightly_jobs" >> $GITHUB_OUTPUT
|
||||
echo "Nightly jobs: $nightly_jobs"
|
||||
|
||||
# Parse the ROCm 7.0 rollback shadow (exclude utility jobs)
|
||||
# Excluded: call-gate, check-changes, finish, and the stage waits.
|
||||
# Keep the reusable extra caller so its nested GPU jobs remain covered.
|
||||
pr_rocm700_jobs=$(yq -r '.jobs | keys | .[]' .github/workflows/pr-test-amd.yml | \
|
||||
grep -v -E '^(call-gate|check-changes|pr-test-amd-finish|wait-for-stage-[ab]-amd)$' | \
|
||||
jq -R -s -c 'split("\n") | map(select(length > 0))')
|
||||
echo "pr_rocm700_jobs=$pr_rocm700_jobs" >> $GITHUB_OUTPUT
|
||||
echo "PR ROCm 7.0 shadow jobs: $pr_rocm700_jobs"
|
||||
|
||||
# Parse the ROCm 7.0 rollback shadow nightly (exclude utility jobs)
|
||||
# Excluded: check-all-jobs
|
||||
nightly_rocm700_jobs=$(yq -r '.jobs | keys | .[]' .github/workflows/nightly-test-amd.yml | \
|
||||
grep -v -E '^(check-all-jobs)$' | \
|
||||
jq -R -s -c 'split("\n") | map(select(length > 0))')
|
||||
echo "nightly_rocm700_jobs=$nightly_rocm700_jobs" >> $GITHUB_OUTPUT
|
||||
echo "Nightly ROCm 7.0 shadow jobs: $nightly_rocm700_jobs"
|
||||
|
||||
# Parse nightly-amd-mi355x-disagg.yml (exclude utility jobs)
|
||||
# Excluded: setup, collect-results -- both run on ubuntu-latest and the
|
||||
# snapshot only keeps self-hosted jobs, so they would report as empty.
|
||||
@@ -223,7 +200,7 @@ jobs:
|
||||
python scripts/ci/utils/query_job_status.py \
|
||||
--repo ${{ github.repository }} \
|
||||
--job "${{ matrix.job_name }}" \
|
||||
--workflow "pr-test-amd-rocm720.yml" \
|
||||
--workflow "pr-test-amd.yml" \
|
||||
--hours ${{ inputs.hours || '24' }} \
|
||||
--input-data-file ci-data/actions-job-snapshot.json \
|
||||
--summary
|
||||
@@ -257,84 +234,6 @@ jobs:
|
||||
path: ci-data
|
||||
|
||||
- name: Generate Nightly Report
|
||||
timeout-minutes: 15
|
||||
run: |
|
||||
python scripts/ci/utils/query_job_status.py \
|
||||
--repo ${{ github.repository }} \
|
||||
--job "${{ matrix.job_name }}" \
|
||||
--workflow "nightly-test-amd-rocm720.yml" \
|
||||
--hours ${{ inputs.hours || '24' }} \
|
||||
--input-data-file ci-data/actions-job-snapshot.json \
|
||||
--summary
|
||||
|
||||
# ROCm 7.0 rollback-shadow reports using dynamic matrix
|
||||
pr-rocm700-ci-reports:
|
||||
name: PR ROCm700 Shadow - ${{ matrix.job_name }}
|
||||
needs: [parse-workflows, fetch-actions-data]
|
||||
if: ${{ !inputs.job_filter }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
job_name: ${{ fromJson(needs.parse-workflows.outputs.pr_rocm700_jobs) }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip install tabulate
|
||||
|
||||
- name: Download Actions data snapshot
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: actions-job-snapshot
|
||||
path: ci-data
|
||||
|
||||
- name: Generate PR ROCm 7.0 Shadow Report
|
||||
timeout-minutes: 15
|
||||
run: |
|
||||
python scripts/ci/utils/query_job_status.py \
|
||||
--repo ${{ github.repository }} \
|
||||
--job "${{ matrix.job_name }}" \
|
||||
--workflow "pr-test-amd.yml" \
|
||||
--hours ${{ inputs.hours || '24' }} \
|
||||
--input-data-file ci-data/actions-job-snapshot.json \
|
||||
--summary
|
||||
|
||||
# ROCm 7.0 rollback-shadow nightly reports using dynamic matrix
|
||||
nightly-rocm700-reports:
|
||||
name: Nightly ROCm700 Shadow - ${{ matrix.job_name }}
|
||||
needs: [parse-workflows, fetch-actions-data]
|
||||
if: ${{ !inputs.job_filter }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
job_name: ${{ fromJson(needs.parse-workflows.outputs.nightly_rocm700_jobs) }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip install tabulate
|
||||
|
||||
- name: Download Actions data snapshot
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: actions-job-snapshot
|
||||
path: ci-data
|
||||
|
||||
- name: Generate Nightly ROCm 7.0 Shadow Report
|
||||
timeout-minutes: 15
|
||||
run: |
|
||||
python scripts/ci/utils/query_job_status.py \
|
||||
@@ -414,7 +313,7 @@ jobs:
|
||||
python scripts/ci/utils/query_job_status.py \
|
||||
--repo ${{ github.repository }} \
|
||||
--runner-report \
|
||||
--workflow "pr-test-amd.yml,nightly-test-amd.yml,pr-test-amd-rocm720.yml,nightly-test-amd-rocm720.yml,nightly-amd-mi355x-disagg.yml" \
|
||||
--workflow "pr-test-amd.yml,nightly-test-amd.yml,nightly-amd-mi355x-disagg.yml" \
|
||||
--hours ${{ inputs.hours || '24' }} \
|
||||
--input-data-file ci-data/actions-job-snapshot.json \
|
||||
--summary
|
||||
|
||||
Reference in New Issue
Block a user