mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-03 09:53:45 +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.
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))
|