fix(ci): make migration-change detection robust to shallow clone & ed… #450
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: Code Quality and Styles | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| code-quality-and-style: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| project: | |
| - frontend | |
| - backend | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: 'yarn' | |
| # pnpm is needed because `lint`/`style` scripts use `pnpx` to pin the | |
| # eslint/prettier version. eslint is intentionally NOT installed | |
| # globally; `pnpx eslint@8.57.0` fetches the pinned version itself. | |
| # Pinned to v9 because (a) `pnpx` was deprecated and removed from | |
| # later versions, and (b) leaving it unpinned silently drifts on | |
| # every CI run. | |
| - name: Install pnpm | |
| run: npm install -g pnpm@9 | |
| - name: Install dependencies | |
| run: yarn install --frozen-lockfile | |
| - name: Style Check | |
| run: yarn workspace ${{ matrix.project }} style | |
| - name: Lint | |
| run: yarn workspace ${{ matrix.project }} lint | |
| - name: Build | |
| run: yarn workspace ${{ matrix.project }} build |