name: CI on: push: branches: [main] pull_request: workflow_dispatch: env: NODE_VERSION: 20 jobs: ci: strategy: matrix: include: - name: Build command: build - name: Lint command: lint name: ${{ matrix.name }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup node.js uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - name: Setup pnpm uses: pnpm/action-setup@v3 - name: Get pnpm store directory id: store-path run: | echo "STORE_PATH=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT" - name: Setup pnpm cache uses: actions/cache@v4 env: STORE_PATH: ${{ steps.store-path.outputs.STORE_PATH }} with: path: ${{ env.STORE_PATH }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - name: Install dependencies run: | pnpm install --frozen-lockfile - name: Run ${{ matrix.command }} run: | pnpm run ${{ matrix.command }}