name: Lint on: push: branches: - master - develop paths: - packages/backend/** - packages/frontend/** - packages/frontend-shared/** - packages/frontend-embed/** - packages/sw/** - packages/misskey-js/** - packages/misskey-bubble-game/** - packages/misskey-reversi/** - packages/shared/eslint.config.js - .forgejo/workflows/lint.yml pull_request: paths: - packages/backend/** - packages/frontend/** - packages/frontend-shared/** - packages/frontend-embed/** - packages/sw/** - packages/misskey-js/** - packages/misskey-bubble-game/** - packages/misskey-reversi/** - packages/shared/eslint.config.js - .forgejo/workflows/lint.yml jobs: pnpm_install: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.1.1 with: fetch-depth: 0 submodules: true - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4.0.4 with: node-version-file: '.node-version' cache: 'pnpm' - run: corepack enable - run: pnpm i --frozen-lockfile lint: needs: [pnpm_install] runs-on: ubuntu-latest continue-on-error: true strategy: matrix: workspace: - backend - frontend - frontend-shared - frontend-embed - sw - misskey-js - misskey-bubble-game - misskey-reversi env: eslint-cache-version: v1 eslint-cache-path: ${{ github.workspace }}/node_modules/.cache/eslint-${{ matrix.workspace }} steps: - uses: actions/checkout@v4.1.1 with: fetch-depth: 0 submodules: true - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4.0.4 with: node-version-file: '.node-version' cache: 'pnpm' - run: corepack enable - run: pnpm i --frozen-lockfile - name: Restore eslint cache uses: actions/cache@v4.1.0 with: path: ${{ env.eslint-cache-path }} key: eslint-${{ env.eslint-cache-version }}-${{ matrix.workspace }}-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.ref_name }}-${{ github.sha }} restore-keys: eslint-${{ env.eslint-cache-version }}-${{ matrix.workspace }}-${{ hashFiles('**/pnpm-lock.yaml') }}- - run: pnpm --filter ${{ matrix.workspace }} run eslint --cache --cache-location ${{ env.eslint-cache-path }} --cache-strategy content typecheck: needs: [pnpm_install] runs-on: ubuntu-latest continue-on-error: true strategy: matrix: workspace: - backend - sw - misskey-js steps: - uses: actions/checkout@v4.1.1 with: fetch-depth: 0 submodules: true - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4.0.4 with: node-version-file: '.node-version' cache: 'pnpm' - run: corepack enable - run: pnpm i --frozen-lockfile - run: pnpm --filter misskey-js run build if: ${{ matrix.workspace == 'backend' || matrix.workspace == 'sw' }} - run: pnpm --filter misskey-reversi run build if: ${{ matrix.workspace == 'backend' }} - run: pnpm --filter ${{ matrix.workspace }} run typecheck