Skip to content

Commit 2e2eeef

Browse files
committed
docs: add CI trigger map (.github/README.md) + CLAUDE.md pointer
Document which event triggers which GitHub Actions workflow, the workflow -> reusable -> composite call graph, and the manual approval gates, in a single .github/README.md. Add a Continuous Integration section to CLAUDE.md that points to it. Claude-Session: https://claude.ai/code/session_013Ai5iqwADTryxoiJRNdhCa
1 parent da389be commit 2e2eeef

2 files changed

Lines changed: 97 additions & 0 deletions

File tree

.github/README.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# CI workflows
2+
3+
Maps which event triggers which workflow and how they call each other.
4+
5+
## Entrypoints
6+
7+
| Workflow | Trigger | What runs |
8+
|---|---|---|
9+
| [build-pr.yml](workflows/build-pr.yml) | `pull_request` (all branches) | ESLint + tests, PR changelog, Android + iOS store builds (gated), E2E build + Maestro shards on both platforms (gated) |
10+
| [build-develop.yml](workflows/build-develop.yml) | `push: develop` | ESLint + tests, release changelog, Android + iOS store builds, seeds Android AVD + SDK caches for E2E shards |
11+
| [prettier.yml](workflows/prettier.yml) | `push: * except master, develop, single-server` (main repo) | Auto-formats with Prettier + ESLint and commits any fixes back to the branch |
12+
| [organize_translations.yml](workflows/organize_translations.yml) | `push` touching `app/i18n/locales/**.json` | Sorts JSON keys and commits the result |
13+
14+
## Call graph
15+
16+
```mermaid
17+
flowchart TD
18+
classDef entry fill:#d4e6f1,stroke:#2980b9
19+
classDef reusable fill:#d5f5e3,stroke:#27ae60
20+
classDef action fill:#fef9e7,stroke:#f39c12
21+
22+
PR([build-pr.yml]):::entry
23+
DEV([build-develop.yml]):::entry
24+
PRET([prettier.yml]):::entry
25+
TRANS([organize_translations.yml]):::entry
26+
27+
ESLINT[eslint.yml]:::reusable
28+
CHANGELOG[generate-changelog.yml]:::reusable
29+
BUILDAND[build-android.yml]:::reusable
30+
BUILDIOS[build-ios.yml]:::reusable
31+
E2EAND[e2e-build-android.yml]:::reusable
32+
E2EIOS[e2e-build-ios.yml]:::reusable
33+
MASTAND[maestro-android.yml]:::reusable
34+
MASIOS[maestro-ios.yml]:::reusable
35+
36+
SN[setup-node]:::action
37+
FSV[fetch-supported-versions]:::action
38+
GBV[generate-build-version]:::action
39+
AACT[build-android action]:::action
40+
IACT[build-ios action]:::action
41+
UAND[upload-android]:::action
42+
UIAND[upload-internal-android]:::action
43+
UIOS[upload-ios]:::action
44+
PREAND[preinstall-android-sdk]:::action
45+
E2EACC[e2e-account]:::action
46+
47+
PR --> ESLINT
48+
PR --> BUILDAND
49+
PR --> BUILDIOS
50+
PR --> E2EAND
51+
PR --> E2EIOS
52+
PR --> MASTAND
53+
PR --> MASIOS
54+
55+
DEV --> ESLINT
56+
DEV --> CHANGELOG
57+
DEV --> BUILDAND
58+
DEV --> BUILDIOS
59+
60+
PRET --> SN
61+
62+
ESLINT --> SN
63+
64+
BUILDAND --> SN
65+
BUILDAND --> FSV
66+
BUILDAND --> GBV
67+
BUILDAND --> AACT
68+
BUILDAND --> UAND
69+
BUILDAND --> UIAND
70+
71+
BUILDIOS --> SN
72+
BUILDIOS --> FSV
73+
BUILDIOS --> GBV
74+
BUILDIOS --> IACT
75+
BUILDIOS --> UIOS
76+
77+
E2EAND --> SN
78+
E2EIOS --> SN
79+
80+
MASTAND --> PREAND
81+
MASTAND --> E2EACC
82+
83+
MASIOS --> E2EACC
84+
```
85+
86+
## Manual gates
87+
88+
| Environment | Workflow / job | Fires when |
89+
|---|---|---|
90+
| `android_build` | [build-android.yml](workflows/build-android.yml)`build-hold` | Called with `trigger == pr` (i.e. from `build-pr.yml`) |
91+
| `upload_android` | [build-android.yml](workflows/build-android.yml)`upload-hold` | Called with `trigger == pr`, after the Android build completes |
92+
| `ios_build` | [build-ios.yml](workflows/build-ios.yml)`build-hold` | Called with `trigger == pr` (i.e. from `build-pr.yml`) |
93+
| `approve_e2e_testing` | [build-pr.yml](workflows/build-pr.yml)`e2e-hold` | Every `pull_request` run |

CLAUDE.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,7 @@ pnpm storybook-generate # Generate story snapshots
9595
- `index.js` — registers app, conditionally loads Storybook
9696
- `app/index.tsx` — Redux provider, theme, navigation, notifications setup
9797
- `app/AppContainer.tsx` — root navigation container
98+
99+
## Continuous Integration
100+
101+
CI triggers, call graph, and manual gates: see `.github/README.md`.

0 commit comments

Comments
 (0)