Skip to content
This repository was archived by the owner on Jun 19, 2026. It is now read-only.

Commit 4f1eb5e

Browse files
chore: fix matrix
1 parent 3c77312 commit 4f1eb5e

2 files changed

Lines changed: 17 additions & 28 deletions

File tree

.github/workflows/skill-validation.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,19 @@ jobs:
2626
PR_NUMBER: ${{ github.event.issue.number }}
2727
COMMENT: ${{ github.event.comment.body }}
2828
run: |
29-
python3 ci/orchestrate_evaluations.py "$PR_NUMBER" --matrix-only --filter-provider all > /tmp/matrix.json
29+
echo "Generating matrix for PR $PR_NUMBER"
30+
python3 ci/orchestrate_evaluations.py "$PR_NUMBER" --matrix-only --filter-provider all > /tmp/matrix.json 2>&1
31+
32+
echo "Matrix content:"
33+
cat /tmp/matrix.json
34+
35+
echo "Setting output..."
3036
echo "result<<EOF" >> $GITHUB_OUTPUT
3137
cat /tmp/matrix.json >> $GITHUB_OUTPUT
3238
echo "EOF" >> $GITHUB_OUTPUT
39+
40+
echo "Matrix size:"
41+
python3 -c "import json; m=json.load(open('/tmp/matrix.json')); print(f\"{len(m['include'])} jobs\")"
3342
3443
evaluate:
3544
needs: prepare

ci/orchestrate_evaluations.py

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,56 +32,42 @@ def validate_environment():
3232

3333
def detect_changes(pr_number: int) -> str:
3434
"""Detect modified skills in PR."""
35-
print("\n==> Detecting changes in PR #{}".format(pr_number))
36-
35+
if not os.environ.get("GITHUB_TOKEN"):
36+
return ""
37+
3738
result = subprocess.run(
3839
["python3", "ci/detect_changes.py", str(pr_number)],
3940
capture_output=True,
4041
text=True,
4142
)
4243

4344
modified_skills = result.stdout.strip()
44-
45-
if modified_skills:
46-
skill_list = modified_skills.split()
47-
print(f"✓ Found {len(skill_list)} modified skill(s): {', '.join(skill_list[:3])}" +
48-
(f" +{len(skill_list)-3} more" if len(skill_list) > 3 else ""))
49-
else:
50-
print("✓ No skills modified - will test all skills")
51-
5245
return modified_skills
5346

5447

5548
def generate_matrix(filter_provider: str = "all", skills: str = "") -> list:
56-
"""Generate evaluation matrix from configuration with per-skill jobs.
49+
"""Generate evaluation matrix from configuration with per-skill jobs."""
5750

58-
If skills are provided, creates one matrix item per skill per model.
59-
Otherwise creates one item per model (tests all skills).
60-
"""
61-
print("\n==> Generating evaluation matrix")
62-
6351
result = subprocess.run(
6452
["uv", "run", "--with", "pyyaml", "ci/matrix_generator.py", "--filter-provider", filter_provider],
6553
capture_output=True,
6654
text=True,
6755
)
6856

6957
if result.returncode != 0:
70-
print("❌ Error generating matrix")
71-
print(result.stderr)
58+
print(f"Error generating matrix: {result.stderr}", file=sys.stderr)
7259
sys.exit(1)
7360

7461
try:
7562
matrix_data = json.loads(result.stdout)
7663
except json.JSONDecodeError:
77-
print("❌ Error parsing matrix JSON")
78-
print(result.stdout)
64+
print(f"Error parsing matrix JSON: {result.stdout}", file=sys.stderr)
7965
sys.exit(1)
8066

8167
items = matrix_data.get("include", [])
8268

8369
if not items:
84-
print("Error: No enabled providers in configuration")
70+
print("Error: No enabled providers in configuration", file=sys.stderr)
8571
sys.exit(1)
8672

8773
# If skills are specified, expand matrix to one item per skill per model
@@ -97,13 +83,7 @@ def generate_matrix(filter_provider: str = "all", skills: str = "") -> list:
9783
expanded_items.append(expanded_item)
9884

9985
items = expanded_items
100-
print(f"✓ Generated matrix with {len(items)} job(s) ({len(items)//len(skill_list)} model(s) × {len(skill_list)} skill(s))")
101-
else:
102-
print(f"✓ Generated matrix with {len(items)} configuration(s) (all skills per model)")
10386

104-
for i, item in enumerate(items, 1):
105-
print(f" {i}. {item['display_name']}")
106-
10787
return items
10888

10989

0 commit comments

Comments
 (0)