mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-03 18:00:36 +00:00
Added a script to cleanup recordings. While doing this, moved the CI matrix generation to a separate script so there is a single source of truth for the matrix. Ran the cleanup script as: ``` PYTHONPATH=. python scripts/cleanup_recordings.py ``` Also added this as part of the pre-commit workflow to ensure that the recordings are always up to date and that no stale recordings are left in the repo. <hr>This is an automatic backport of pull request #4074 done by [Mergify](https://mergify.com). --------- Co-authored-by: Ashwin Bharambe <ashwin.bharambe@gmail.com>
61 lines
1.9 KiB
Python
Executable file
61 lines
1.9 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under the terms described in the LICENSE file in
|
|
# the root directory of this source tree.
|
|
|
|
"""
|
|
Generate CI test matrix from ci_matrix.json with schedule/input overrides.
|
|
|
|
This script is used by .github/workflows/integration-tests.yml to generate
|
|
the test matrix dynamically based on the CI_MATRIX definition.
|
|
"""
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
CI_MATRIX_FILE = Path(__file__).parent.parent / "tests/integration/ci_matrix.json"
|
|
|
|
with open(CI_MATRIX_FILE) as f:
|
|
matrix_config = json.load(f)
|
|
|
|
DEFAULT_MATRIX = matrix_config["default"]
|
|
SCHEDULE_MATRICES: dict[str, list[dict[str, str]]] = matrix_config.get("schedules", {})
|
|
|
|
|
|
def generate_matrix(schedule="", test_setup=""):
|
|
"""
|
|
Generate test matrix based on schedule or manual input.
|
|
|
|
Args:
|
|
schedule: GitHub cron schedule string (e.g., "1 0 * * 0" for weekly)
|
|
test_setup: Manual test setup input (e.g., "ollama-vision")
|
|
|
|
Returns:
|
|
Matrix configuration as JSON string
|
|
"""
|
|
# Weekly scheduled test matrices
|
|
if schedule and schedule in SCHEDULE_MATRICES:
|
|
matrix = SCHEDULE_MATRICES[schedule]
|
|
# Manual input for specific setup
|
|
elif test_setup == "ollama-vision":
|
|
matrix = [{"suite": "vision", "setup": "ollama-vision"}]
|
|
# Default: use JSON-defined matrix
|
|
else:
|
|
matrix = DEFAULT_MATRIX
|
|
|
|
# GitHub Actions expects {"include": [...]} format
|
|
return json.dumps({"include": matrix})
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser(description="Generate CI test matrix")
|
|
parser.add_argument("--schedule", default="", help="GitHub schedule cron string")
|
|
parser.add_argument("--test-setup", default="", help="Manual test setup input")
|
|
|
|
args = parser.parse_args()
|
|
|
|
print(generate_matrix(args.schedule, args.test_setup))
|