Skip to content

Commit 1d5d4ba

Browse files
Wire Jumbo into monorepo CI, audit, and docs.
Register the Pos app as a first-class private submodule: dedicated lint/knip/typecheck/Jest CI, dependency audit, task-registry start capability, and docs/README ownership. Co-authored-by: Babacar Diop <princemuichkine@users.noreply.github.com>
1 parent 4038d62 commit 1d5d4ba

7 files changed

Lines changed: 104 additions & 2 deletions

File tree

.github/workflows/app-ci-jumbo.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: lomi · ci · jumbo
2+
3+
on:
4+
push:
5+
branches: [main, develop]
6+
paths:
7+
- "apps/jumbo/**"
8+
- "packages/shared/**"
9+
- "packages/queries/**"
10+
- "tooling/scripts/install-app-with-packages.mjs"
11+
- ".github/workflows/app-ci-jumbo.yml"
12+
pull_request:
13+
branches: [main]
14+
paths:
15+
- "apps/jumbo/**"
16+
- "packages/shared/**"
17+
- "packages/queries/**"
18+
- "tooling/scripts/install-app-with-packages.mjs"
19+
- ".github/workflows/app-ci-jumbo.yml"
20+
workflow_dispatch:
21+
22+
permissions:
23+
contents: read
24+
25+
jobs:
26+
check:
27+
runs-on: ubuntu-latest
28+
defaults:
29+
run:
30+
working-directory: apps/jumbo
31+
steps:
32+
- uses: actions/checkout@v5
33+
34+
- name: Checkout jumbo submodule
35+
working-directory: .
36+
env:
37+
TOKEN: ${{ secrets.REPO_CHECKOUT_PAT }}
38+
run: bash .github/scripts/init-submodules.sh apps/jumbo
39+
40+
- uses: pnpm/action-setup@v4
41+
with:
42+
version: 9
43+
44+
- uses: actions/setup-node@v4
45+
with:
46+
node-version: "22"
47+
cache: pnpm
48+
cache-dependency-path: |
49+
apps/jumbo/pnpm-lock.yaml
50+
packages/shared/package.json
51+
packages/queries/package.json
52+
53+
- name: Install Jumbo + shared packages
54+
working-directory: .
55+
run: node tooling/scripts/install-app-with-packages.mjs apps/jumbo
56+
57+
- name: Lint
58+
run: pnpm lint
59+
60+
- name: Format
61+
run: pnpm format
62+
63+
- name: Knip
64+
run: pnpm knip
65+
66+
- name: Typecheck
67+
run: pnpm exec tsc --noEmit --incremental false
68+
69+
- name: Test
70+
run: pnpm exec jest --ci --watchman=false

.github/workflows/app-security-audit.yml

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
name: lomi · security · dependency audit
22

33
# Full installs are expensive: run on lockfile changes, weekly, or manually.
4-
# dashboard/checkout live in private submodule repos — check them out explicitly.
4+
# dashboard/checkout/jumbo live in private submodule repos — check them out explicitly.
55
on:
66
push:
77
branches: [main, develop]
88
paths:
99
- "apps/api"
1010
- "apps/dashboard/pnpm-lock.yaml"
1111
- "apps/checkout/pnpm-lock.yaml"
12+
- "apps/jumbo/pnpm-lock.yaml"
1213
- ".github/workflows/app-security-audit.yml"
1314
pull_request:
1415
branches: [main]
1516
paths:
1617
- "apps/api"
1718
- "apps/dashboard/pnpm-lock.yaml"
1819
- "apps/checkout/pnpm-lock.yaml"
20+
- "apps/jumbo/pnpm-lock.yaml"
1921
- ".github/workflows/app-security-audit.yml"
2022
schedule:
2123
- cron: "30 8 * * 1"
@@ -93,3 +95,26 @@ jobs:
9395
node-version: "22"
9496
- name: pnpm audit (high and critical)
9597
run: pnpm --ignore-workspace audit --audit-level high
98+
99+
audit-jumbo:
100+
runs-on: ubuntu-latest
101+
defaults:
102+
run:
103+
working-directory: apps/jumbo
104+
steps:
105+
- uses: actions/checkout@v5
106+
- name: Checkout jumbo submodule
107+
uses: actions/checkout@v5
108+
with:
109+
repository: lomiafrica/jumbo
110+
ref: main
111+
token: ${{ secrets.REPO_CHECKOUT_PAT }}
112+
path: apps/jumbo
113+
- uses: pnpm/action-setup@v4
114+
with:
115+
version: 9
116+
- uses: actions/setup-node@v4
117+
with:
118+
node-version: "22"
119+
- name: pnpm audit (high and critical)
120+
run: pnpm --ignore-workspace audit --audit-level high

.gitmodules

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
[submodule "apps/jumbo"]
2525
path = apps/jumbo
2626
url = https://github.com/lomiafrica/jumbo.git
27+
branch = main
2728
[submodule "apps/customers"]
2829
path = apps/customers
2930
url = https://github.com/lomiafrica/customers.git

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ We are progressively open-sourcing the monorepo toward **eventual self-hosting**
6161
- **Proprietary**:
6262
- API service: **[apps/api](./apps/api)** (`lomiafrica/api`)
6363
- Admin dashboard: **[apps/admin](./apps/admin)**
64+
- Merchant phone app (lomi. Pos): **[apps/jumbo](./apps/jumbo)** (`lomiafrica/jumbo`)
6465

6566
All open-source repositories will be merged into the monorepo in the coming months.
6667

apps/docs/content/docs/resources/open-source.fr.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Certains composants relèvent exclusivement de notre **licence commerciale**, po
2929
| Site de documentation | ✅ Open source (`apps/docs`) |
3030
| Tableau de bord marchand, checkout, storefront | 🔒 Produit hébergé (ouverture progressive du code) |
3131
| Admin | 🔒 Propriétaire |
32+
| Application marchande lomi. Pos | 🔒 Propriétaire (`apps/jumbo`) |
3233

3334
<Callout type="warn">
3435
**Pas d’auto-hébergement aujourd’hui.** Le traitement des paiements repose sur l’infrastructure hébergée de lomi., Merchant of Record, accords prestataires, conformité et stack opérationnelle. Un clone local sert au **développement et à la contribution**, pas à exploiter votre propre processeur de paiement.
@@ -87,6 +88,7 @@ Ce qui est ouvert aujourd’hui :
8788

8889
- **Propriétaire** :
8990
- Tableau de bord admin : **`apps/admin`**
91+
- Application marchande lomi. Pos : **`apps/jumbo`** (`lomiafrica/jumbo`)
9092

9193
- **Produit hébergé (code pas entièrement public)** :
9294
- Checkout : **`apps/checkout`**

apps/docs/content/docs/resources/open-source.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Certain components are covered exclusively by our **commercial license**, design
2929
| Documentation website | ✅ Open source (`apps/docs`) |
3030
| Merchant dashboard, checkout, storefront | 🔒 Hosted product (source opening progressively) |
3131
| Admin | 🔒 Proprietary |
32+
| Merchant phone app (lomi. Pos) | 🔒 Proprietary (`apps/jumbo`) |
3233

3334
<Callout type="warn">
3435
**Not self-hostable today.** Running payment processing requires lomi.’s hosted infrastructure, Merchant of Record, provider agreements, compliance, and operational stack. Local clones are for **development and contribution**, not for operating your own payment processor.
@@ -87,6 +88,7 @@ What is open today:
8788

8889
- **Proprietary**:
8990
- Admin dashboard: **`apps/admin`**
91+
- Merchant phone app (lomi. Pos): **`apps/jumbo`** (`lomiafrica/jumbo`)
9092

9193
- **Hosted product (source not fully public yet)**:
9294
- Checkout: **`apps/checkout`**

tooling/tasks.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,14 +285,15 @@
285285
"capabilities": [
286286
"install",
287287
"dev",
288+
"start",
288289
"lint",
289290
"format",
290291
"knip",
291292
"types:generate"
292293
],
293294
"owner": "mobile",
294295
"risk": "medium",
295-
"notes": "dev is the Expo bundler. start remains an Expo-compatible alias."
296+
"notes": "dev is the Expo bundler. start is an Expo-compatible alias. Typecheck and Jest run from monorepo CI until jumbo adds matching package scripts."
296297
},
297298
{
298299
"id": "cli",

0 commit comments

Comments
 (0)