[#483]: Split getProjectsWithSummary to avoid disk I/O on Projects tab #1798
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Quality Gates | |
| # TypeScript + Expo health checks for PRs. PR CI is a frozen snapshot of this | |
| # commit (pinned Node via .nvmrc; lockfile expo-doctor — never @latest). | |
| # Dependency version validation is offline/deterministic (#422): Expo ships a | |
| # 57.0.x patch every ~3 days and the remote versions map advances with no | |
| # diff here. Freshness is handled by the scheduled expo-sdk-align workflow. | |
| # No native Gradle build — native compile is on-demand via EAS preview | |
| # (preview-build label) and nightly APK; post-merge QA uses nightly | |
| # (see docs/guides/qa-process.md). Production: tag → EAS. | |
| on: | |
| push: | |
| pull_request: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: quality-gates-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| typecheck: | |
| name: TypeScript | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version-file: '.nvmrc' | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Typecheck | |
| run: npm run typecheck | |
| expo-doctor: | |
| name: expo-doctor | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| env: | |
| EXPO_PUBLIC_API_BASE_URL: http://localhost:9999 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version-file: '.nvmrc' | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run expo-doctor | |
| env: | |
| # Patch freshness is scheduled maintenance (#422), not a per-PR gate: | |
| # Expo ships a 57.0.x patch every ~3 days and the remote versions map | |
| # advances with no diff here. Dependency validation is still done | |
| # once, deterministically, by the expo install --check step below. | |
| EXPO_DOCTOR_SKIP_DEPENDENCY_VERSION_CHECK: '1' | |
| # A transient api.expo.dev / reactnative.directory blip must not fail a PR. | |
| EXPO_DOCTOR_WARN_ON_NETWORK_ERRORS: '1' | |
| run: npm run doctor | |
| expo-install-check: | |
| name: expo install --check | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| env: | |
| EXPO_PUBLIC_API_BASE_URL: http://localhost:9999 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version-file: '.nvmrc' | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Check dependency versions | |
| # Script also sets EXPO_OFFLINE=1; env here documents the CI contract (#422). | |
| env: | |
| EXPO_OFFLINE: '1' | |
| run: npm run expo:check | |
| docs-structure: | |
| name: Docs Structure Check | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - run: ./scripts/check-docs-structure.sh |