Skip to content
2 changes: 2 additions & 0 deletions .github/workflows/ci_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ concurrency:
jobs:
setup:
uses: ./.github/workflows/setup.yml
with:
build_variant: "release"

linux_build_and_test:
name: Linux::${{ matrix.variant.family }}::${{ matrix.variant.build_variant_label }}
Expand Down
28 changes: 11 additions & 17 deletions build_tools/github_actions/amdgpu_family_matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@

* Each entry determines which families and test runners are available to use
* Each group determines which entries run by default on workflow triggers

For presubmit, postsubmit and nightly family selection:

- presubmit runs the targets from presubmit dictionary on pull requests
- postsubmit runs the targets from presubmit and postsubmit dictionaries on pushes to main branch
- nightly runs targets from presubmit, postsubmit and nightly dictionaries

TODO(#2200): clarify AMD GPU family selection
"""

all_build_variants = {
Expand Down Expand Up @@ -49,10 +57,11 @@
"sanity_check_only_for_family": True,
},
"windows": {
"test-runs-on": "",
"test-runs-on": "windows-gfx110X-gpu-rocm",
"family": "gfx110X-all",
"bypass_tests_for_releases": True,
"build_variants": ["release"],
"sanity_check_only_for_family": True,
},
},
"gfx1151": {
Expand Down Expand Up @@ -148,19 +157,6 @@
"expect_pytorch_failure": True,
},
},
"gfx110x": {
"linux": {
"test-runs-on": "linux-gfx1101-gpu-rocm",
"family": "gfx110X-all",
"build_variants": ["release"],
"sanity_check_only_for_family": True,
},
"windows": {
"test-runs-on": "windows-gfx110X-gpu-rocm",
"family": "gfx110X-all",
"build_variants": ["release"],
},
},
"gfx1150": {
"linux": {
"test-runs-on": "",
Expand Down Expand Up @@ -205,8 +201,6 @@ def get_all_families_for_trigger_types(trigger_types):
for trigger_type in trigger_types:
if trigger_type in matrix_map:
for family_name, family_config in matrix_map[trigger_type].items():
# Only add if not already present (first occurrence wins)
if family_name not in result:
result[family_name] = family_config
result[family_name] = family_config

return result
22 changes: 18 additions & 4 deletions build_tools/github_actions/configure_ci.py
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ def matrix_generator(
if is_push and base_args.get("branch_name") == "main":
active_trigger_types.extend(["presubmit", "postsubmit"])
if is_schedule:
active_trigger_types.append("nightly")
active_trigger_types.extend(["presubmit", "postsubmit", "nightly"])

# Get the appropriate family matrix based on active triggers
# For workflow_dispatch and PR labels, we need to check all matrices
Expand Down Expand Up @@ -382,10 +382,23 @@ def matrix_generator(
if is_schedule:
print(f"[SCHEDULE] Generating build matrix with {str(base_args)}")

# Add _only_ nightly targets.
for key in amdgpu_family_info_matrix_nightly:
# For nightly runs, we run all builds and full tests
amdgpu_family_info_matrix_all = (
amdgpu_family_info_matrix_presubmit
| amdgpu_family_info_matrix_postsubmit
| amdgpu_family_info_matrix_nightly
)
for key in amdgpu_family_info_matrix_all:
selected_target_names.append(key)

for key in lookup_matrix:
if (
platform in lookup_matrix[key]
and "sanity_check_only_for_family" in lookup_matrix[key][platform]
):
# For nightly runs, we want to run full tests regardless of limited machines, so we delete the sanity_check_only_for_family option
del lookup_matrix[key][platform]["sanity_check_only_for_family"]

# Ensure the lists are unique
unique_target_names = list(set(selected_target_names))
unique_test_names = list(set(selected_test_names))
Expand Down Expand Up @@ -492,9 +505,10 @@ def main(base_args, linux_families, windows_families):

test_type = "smoke"

# In the case of a scheduled run, we always want to build
# In the case of a scheduled run, we always want to build and we want to run full tests
if is_schedule:
enable_build_jobs = True
test_type = "full"
else:
modified_paths = get_modified_paths(base_ref)
print("modified_paths (max 200):", modified_paths[:200])
Expand Down
Loading