# Run formatting on all PRs name: CI on: push: branches: ["main"] pull_request: workflow_dispatch: # Allows triggering the workflow manually in GitHub UI # If another push to the same PR or branch happens while this workflow is still running, # cancel the earlier run in favor of the next run. # # There's no point in testing an outdated version of the code. GitHub only allows # a limited number of job runners to be active at the same time, so it's better to cancel # pointless jobs early so that more useful jobs can run sooner. concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: format: name: Check formatting runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 10.5.1 - uses: actions/setup-node@v4 with: node-version: "18.x" cache: "pnpm" - name: Install dependencies run: pnpm install - name: Check formatting run: pnpm format:check lint: name: Check linting runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 10.5.1 - uses: actions/setup-node@v4 with: node-version: "18.x" cache: "pnpm" - name: Install dependencies run: pnpm install - name: Check linting run: pnpm lint readme-spelling: name: Check README spelling runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: codespell-project/actions-codespell@v2 with: ignore_words_file: .codespellignore path: README.md check-spelling: name: Check code spelling runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: codespell-project/actions-codespell@v2 with: ignore_words_file: .codespellignore path: src