Files

39 lines
1.3 KiB
Python

"""Full pipeline run: load -> generate -> enrich -> publish.
Each phase is its own script and idempotent; this orchestrator just chains
them. Phases that need missing credentials skip themselves with a notice.
"""
import subprocess
import sys
import os
HERE = os.path.dirname(__file__)
PHASES = [
("p1_load.py", "load ESCO/O*NET/crosswalk into MSSQL"),
("p2_generate.py", "generate core skill packages"),
("p2b_add_workflows.py", "inject PR-gate workflows (recruiter)"),
("p3a_fetch_jobs.py", "fetch recruiter job ads (JSearch)"),
("p3b_store_evidence.py", "store extracted evidence in MSSQL"),
("p3c_aggregate.py", "aggregate market percentages into the package"),
("p4_publish.py", "publish orgs/repos/marketplace to Gitea"),
("p4b_tenant_demo.py", "tenant fork + sanitized community PR"),
]
def main():
for script, label in PHASES:
path = os.path.join(HERE, script)
if not os.path.exists(path):
print(f"== SKIP {script} ({label}): script not present yet")
continue
print(f"\n== {script}{label}")
r = subprocess.run([sys.executable, "-u", path])
if r.returncode != 0:
sys.exit(f"ABORT: {script} failed with exit code {r.returncode}")
print("\nPipeline complete.")
if __name__ == "__main__":
main()