# TypeScript: пакеты, веб, typecheck мобильного приложения, скрипты релиза. name: ci / ts on: push: branches: [main] paths: - 'apps/**' - 'packages/**' - 'scripts/**' - 'package.json' - 'pnpm-lock.yaml' - 'pnpm-workspace.yaml' - 'turbo.json' - 'tsconfig.base.json' - '.gitea/workflows/ci-ts.yml' pull_request: paths: - 'apps/**' - 'packages/**' - 'scripts/**' - 'package.json' - 'pnpm-lock.yaml' - 'pnpm-workspace.yaml' - 'turbo.json' - 'tsconfig.base.json' - '.gitea/workflows/ci-ts.yml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: ts: name: ts (packages + web) runs-on: ubuntu-latest 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 # Локальный кэш turbo: typecheck/test/build пропускаются для пакетов, чьи входы не менялись - uses: actions/cache@v4 with: path: .turbo/cache key: turbo-ts-${{ github.sha }} restore-keys: turbo-ts- - run: pnpm i18n:check - run: pnpm test:scripts - run: pnpm typecheck - run: pnpm test - run: pnpm --filter @pipu/web build # Браузер качается долго (основной CDN Microsoft из раннера недоступен) — кэшируем по lock-файлу. # Системные библиотеки (libnspr4 и т.п.) в образе раннера нет, их ставит --with-deps на каждом прогоне. - uses: actions/cache@v4 with: path: ~/.cache/ms-playwright key: playwright-${{ hashFiles('pnpm-lock.yaml') }} - run: pnpm --filter @pipu/web exec playwright install --with-deps chromium - run: pnpm --filter @pipu/web test:e2e