ci: gate current release validation
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Validate that CI runs Claro's current release gates, not only legacy smoke tests."""
|
||||
from pathlib import Path
|
||||
import sys
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
WORKFLOW = ROOT / ".forgejo" / "workflows" / "ci.yml"
|
||||
|
||||
REQUIRED_COMMANDS = [
|
||||
"./claro validate",
|
||||
"python3 tools/validate_typecheck_diagnostics.py",
|
||||
"python3 tools/validate_version_convention.py",
|
||||
]
|
||||
|
||||
|
||||
def main() -> int:
|
||||
if not WORKFLOW.exists():
|
||||
print(f"Missing CI workflow: {WORKFLOW.relative_to(ROOT)}")
|
||||
return 1
|
||||
|
||||
text = WORKFLOW.read_text(encoding="utf-8")
|
||||
missing = [command for command in REQUIRED_COMMANDS if command not in text]
|
||||
if missing:
|
||||
print("CI workflow is missing current release validation commands:")
|
||||
for command in missing:
|
||||
print(f" - {command}")
|
||||
print("Add them to .forgejo/workflows/ci.yml so regressions are caught before release.")
|
||||
return 1
|
||||
|
||||
print("CI workflow validation complete")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user