[CI] GB200 nightly: on-demand PR/branch image build and config filter (#23086)

This commit is contained in:
Sahithi Chigurupati
2026-04-22 13:51:25 -07:00
committed by GitHub
parent 97fc950635
commit 9591033179
2 changed files with 265 additions and 9 deletions
+25 -1
View File
@@ -8,14 +8,17 @@ Output: JSON array written to stdout, consumed by the workflow setup job as
a dynamic matrix via fromJson(needs.setup.outputs.matrix).
Usage:
python3 generate_matrix.py <path-to-nightly-configs.yaml> --runner <label>
python3 generate_matrix.py <path-to-nightly-configs.yaml> --runner <label> [--filter NAMES]
Example:
python3 generate_matrix.py scripts/ci/slurm/nightly-configs.yaml --runner gb200
python3 generate_matrix.py scripts/ci/slurm/nightly-configs.yaml --runner gb200 \\
--filter dsr1-fp8-1k1k-max-tpt,dsr1-fp4-1k1k-mid-curve
"""
import argparse
import json
import sys
import yaml
@@ -35,6 +38,14 @@ def main():
required=True,
help="Filter configs by runner label (e.g. gb200, b200)",
)
parser.add_argument(
"--filter",
default="",
help=(
"Optional comma-separated list of matrix entry names to include "
"(e.g. 'dsr1-fp8-1k1k-max-tpt'). Names must match exactly."
),
)
args = parser.parse_args()
with open(args.config_file) as f:
@@ -66,6 +77,19 @@ def main():
}
)
wanted = [n.strip() for n in args.filter.split(",") if n.strip()]
if wanted:
available = [e["name"] for e in matrix]
unknown = [n for n in wanted if n not in available]
if unknown:
print(
f"ERROR: unknown config name(s): {', '.join(unknown)}. "
f"Available for runner '{args.runner}': {', '.join(available)}",
file=sys.stderr,
)
sys.exit(1)
matrix = [e for e in matrix if e["name"] in wanted]
print(json.dumps(matrix))