name: Web CI on: push: branches: [master, dev] paths: - "packages/web/**" - "docs/**" - ".github/workflows/web-ci.yml" pull_request: branches: [master, dev] paths: - "packages/web/**" - "docs/**" - ".github/workflows/web-ci.yml" concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: format-lint-typecheck-build: runs-on: ubuntu-latest defaults: run: working-directory: packages/web steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v2 with: bun-version: "1.3.12" - name: Install dependencies run: bun install --frozen-lockfile - name: Restore Next.js build cache uses: actions/cache@v4 with: path: packages/web/.next/cache key: ${{ runner.os }}-web-next-${{ hashFiles('packages/web/bun.lock', 'packages/web/package.json', 'packages/web/next.config.ts', 'packages/web/open-next.config.ts', 'packages/web/postcss.config.mjs') }}-${{ hashFiles('packages/web/app/**', 'packages/web/components/**', 'packages/web/lib/**', 'packages/web/messages/**', 'packages/web/i18n/**', 'docs/**') }} restore-keys: | ${{ runner.os }}-web-next-${{ hashFiles('packages/web/bun.lock', 'packages/web/package.json', 'packages/web/next.config.ts', 'packages/web/open-next.config.ts', 'packages/web/postcss.config.mjs') }}- - name: Generate docs content from repo-root docs/ run: node ./scripts/generate-docs-content.mjs - name: Format check run: bun run format:check - name: Lint run: bun run lint - name: Type check run: bun run type-check - name: OpenNext (Cloudflare) build run: bunx opennextjs-cloudflare build env: NEXT_TELEMETRY_DISABLED: "1"