Jaypore CI

> Jaypore CI: Minimal, Offline, Local CI system.
Log | Files | Refs | README | LICENSE

README.md (1188B)


      1 # 12 — Downstream Trigger
      2 
      3 After a shared library’s tests pass, push CI into every downstream repo
      4 that depends on it.
      5 
      6 ## Repos
      7 
      8 | Repo | Path | Role |
      9 |------|------|------|
     10 | **core-lib** | `/home/exedev/core-lib/` | Shared library (`corelib.py` — `validate_email`, `slugify`) |
     11 | **consumer-svc** | `/home/exedev/consumer-svc/` | Service that imports core-lib |
     12 
     13 ## The symlink
     14 
     15 ```
     16 core-lib/.jci/downstream-consumer  →  /home/exedev/consumer-svc
     17 ```
     18 
     19 This symlink tells core-lib where to push CI signals.
     20 
     21 ## How it works
     22 
     23 1. `core-lib/.jci/run.sh` runs core-lib’s own tests.
     24 2. If they pass, it finds every `.jci/downstream-*` symlink.
     25 3. For each one, it resolves the symlink and runs `git jci run` in that repo.
     26 4. If any downstream CI fails, the overall run fails.
     27 
     28 ## Try it
     29 
     30 ```bash
     31 cd /home/exedev/core-lib
     32 git jci run
     33 ```
     34 
     35 You’ll see core-lib tests run, then consumer-svc CI gets triggered
     36 automatically.
     37 
     38 ## Adding more downstream repos
     39 
     40 ```bash
     41 cd /home/exedev/core-lib/.jci
     42 ln -s /path/to/billing-svc downstream-billing
     43 ln -s /path/to/admin-app downstream-admin
     44 ```
     45 
     46 The `run.sh` discovers all `downstream-*` symlinks automatically — no
     47 config file to edit.