mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-07 14:26:47 +02:00
* ci: split mobile lint/typecheck out of frontend job Mobile lint (~38s) + typecheck (~13s) ran on every web/desktop PR even though mobile has no vitest suite and main CLAUDE.md already promises a parallel mobile-verify workflow. Excluding @multica/mobile from the frontend turbo filter pulls those 50s off the critical path, and the new mobile-verify.yml runs them in parallel only when apps/mobile/** or packages/core/types/** changes. MUL-2729 Co-authored-by: multica-agent <github@multica.ai> * ci(mobile-verify): broaden path filter to cover real mobile deps The initial filter only watched `apps/mobile/**` and `packages/core/types/**`, but mobile imports runtime modules from many more `@multica/core/*` paths (agents, markdown, permissions, api/schemas, etc.). PRs that touched only those subtrees would skip main CI (via `--filter='!@multica/mobile'`) AND skip Mobile Verify — a coverage regression vs. the pre-split CI. Expand paths to: - `packages/core/**` (covers every importable subpath) - root install/turbo configs that affect mobile build: `package.json`, `pnpm-lock.yaml`, `pnpm-workspace.yaml`, `turbo.json` Co-authored-by: multica-agent <github@multica.ai> --------- Co-authored-by: J <j@multica.ai> Co-authored-by: multica-agent <github@multica.ai>
66 lines
1.9 KiB
YAML
66 lines
1.9 KiB
YAML
name: Mobile Verify
|
|
|
|
# Runs lint + typecheck for apps/mobile only, parallel to the main CI
|
|
# workflow. Path-filtered so PRs that don't touch mobile (or anything
|
|
# mobile transitively depends on) pay zero cost.
|
|
#
|
|
# Path scope rationale — mobile transitively depends on:
|
|
# - apps/mobile/** — the app itself
|
|
# - packages/core/** — mobile imports types AND pure functions
|
|
# (agents, markdown, permissions, api/schemas, …),
|
|
# not only @multica/core/types
|
|
# - package.json / pnpm-lock.yaml — install graph
|
|
# - pnpm-workspace.yaml — catalog versions
|
|
# - turbo.json — turbo task pipeline
|
|
#
|
|
# Mobile has no vitest suite today; if one lands, add `test` to the turbo
|
|
# task list below.
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- "apps/mobile/**"
|
|
- "packages/core/**"
|
|
- "package.json"
|
|
- "pnpm-lock.yaml"
|
|
- "pnpm-workspace.yaml"
|
|
- "turbo.json"
|
|
- ".github/workflows/mobile-verify.yml"
|
|
pull_request:
|
|
branches: [main]
|
|
paths:
|
|
- "apps/mobile/**"
|
|
- "packages/core/**"
|
|
- "package.json"
|
|
- "pnpm-lock.yaml"
|
|
- "pnpm-workspace.yaml"
|
|
- "turbo.json"
|
|
- ".github/workflows/mobile-verify.yml"
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
mobile:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Setup pnpm
|
|
uses: pnpm/action-setup@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: 22
|
|
cache: pnpm
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install
|
|
|
|
- name: Type check and lint
|
|
run: pnpm exec turbo typecheck lint --filter=@multica/mobile
|