/ check_ci.py
check_ci.py
1 #!/usr/bin/env python3 2 import subprocess 3 import json 4 import sys 5 6 token_file = "/home/devops/.config/forgejo/token" 7 with open(token_file) as f: 8 token = f.read().strip() 9 10 result = subprocess.run( 11 ["curl", "-s", "-H", f"Authorization: token {token}", 12 "https://source.ac-dc.network/api/v1/repos/alpha-delta-network/alphaos/actions/runs?limit=3"], 13 capture_output=True, text=True, timeout=15 14 ) 15 16 data = json.loads(result.stdout) 17 runs = data.get('workflow_runs', []) 18 print(f"=== CI Status for alphaos (top 3 runs) ===") 19 for run in runs: 20 print(f"Run #{run['id']}: {run['status']} - {run.get('title', '')[:60]}") 21 22 # Check for radicle-push job if this is the latest run 23 if run == runs[0]: 24 jobs_url = f"https://source.ac-dc.network/api/v1/repos/alpha-delta-network/alphaos/actions/runs/{run['id']}/jobs" 25 jobs_result = subprocess.run( 26 ["curl", "-s", "-H", f"Authorization: token {token}", jobs_url], 27 capture_output=True, text=True, timeout=15 28 ) 29 try: 30 jobs_data = json.loads(jobs_result.stdout) 31 jobs = jobs_data.get('jobs', []) 32 print(f"\n Jobs for latest run:") 33 for job in jobs: 34 print(f" - {job['name']}: {job['status']} / {job.get('conclusion', 'N/A')}") 35 except: 36 pass