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.