# Expo: expo-doctor и Metro-бандл Android. Полная сборка APK — только в release.yml. name: ci / mobile on: workflow_dispatch: # перезапуск вручную (например, после чистки раннера) push: branches: [main] paths: - 'apps/mobile/**' - 'packages/**' - 'package.json' - 'pnpm-lock.yaml' - 'pnpm-workspace.yaml' - 'turbo.json' - 'tsconfig.base.json' - '.gitea/workflows/ci-mobile.yml' pull_request: paths: - 'apps/mobile/**' - 'packages/**' - 'package.json' - 'pnpm-lock.yaml' - 'pnpm-workspace.yaml' - 'turbo.json' - 'tsconfig.base.json' - '.gitea/workflows/ci-mobile.yml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: mobile: name: mobile (Metro-бандл Android) runs-on: ubuntu-latest defaults: { run: { working-directory: apps/mobile } } steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: { node-version: "22", cache: pnpm } - run: pnpm install --frozen-lockfile # npx expo-doctor качает пакет в кэш npm; Metro хранит трансформации в /tmp/metro-cache - uses: actions/cache@v4 with: path: | ~/.npm/_npx /tmp/metro-cache key: mobile-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.sha }} restore-keys: mobile-${{ hashFiles('pnpm-lock.yaml') }}- - run: npx expo-doctor - run: npx expo export --platform android --output-dir dist