Update package dependencies and enhance documentation workflows #12
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: CI | |
| on: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| types: [opened, synchronize] | |
| jobs: | |
| lint_and_check: | |
| name: 🧹 Lint & Type Check | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read # Needed for checkout | |
| checks: write # Needed for reviewdog to post results | |
| pull-requests: write # Needed for reviewdog github-pr-review reporter (optional) | |
| env: | |
| TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
| TURBO_TEAM: ${{ secrets.TURBO_TEAM }} | |
| steps: | |
| - name: ⬇️ Check out code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 2 | |
| - name: 🅿️ Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| - name: 🟢 Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: 'pnpm' | |
| - name: 📦 Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: 👀 Type Check | |
| run: pnpm turbo run check-types | |
| - name: 🧹 Run Biome with Reviewdog | |
| uses: mongolyy/reviewdog-action-biome@v2.1.0 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| reporter: github-pr-check # Report results as checks | |
| level: warning # Report errors | |
| build: | |
| name: 🏗️ Build Packages | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read # Needed for checkout | |
| env: | |
| TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
| TURBO_TEAM: ${{ secrets.TURBO_TEAM }} | |
| steps: | |
| - name: ⬇️ Check out code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 2 | |
| - name: 🅿️ Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| - name: 🟢 Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: 'pnpm' | |
| - name: 📦 Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: 🏗️ Build | |
| run: pnpm turbo run build --filter="./packages/*" | |
| test: | |
| name: 🧪 Run Tests & Coverage | |
| needs: build # Run only after build succeeds | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read # Needed for checkout | |
| env: | |
| TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
| TURBO_TEAM: ${{ secrets.TURBO_TEAM }} | |
| steps: | |
| - name: ⬇️ Check out code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 2 | |
| - name: 🅿️ Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| - name: 🟢 Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: 'pnpm' | |
| - name: 📦 Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: 🎭 Cache Playwright browsers | |
| id: playwright-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: playwright-browsers-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| playwright-browsers-${{ runner.os }}- | |
| - name: 🎭 Install Playwright browsers | |
| if: steps.playwright-cache.outputs.cache-hit != 'true' | |
| run: pnpm exec playwright install | |
| - name: 🧪 Run Tests | |
| run: pnpm turbo run test | |
| - name: ⬆️ Upload Individual Coverage Reports | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: individual-coverage-data # Artifact containing all raw reports | |
| path: | | |
| packages/*/coverage/coverage-summary.json | |
| packages/*/coverage/coverage-final.json | |
| apps/*/coverage/coverage-summary.json | |
| apps/*/coverage/coverage-final.json | |
| # Add other potential locations if necessary | |
| retention-days: 7 | |
| # Optional: Handle case where no files are found gracefully | |
| if-no-files-found: warn # 'warn', 'error', or 'ignore' |