name: Lint on: push: branches: - main - patch-release - next pull_request: permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: lint: name: Lint runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Setup Node.js uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: cache: "yarn" - name: Install Dependencies run: yarn install --immutable - name: Check Dependencies run: yarn lint:deps - name: Check JSDoc Types run: yarn lint:typecheck - name: Lint ESLint run: yarn lint:eslint - name: Lint Prettier run: yarn lint:prettier - name: Spellcheck run: yarn lint:spellcheck - name: Lint Changelog run: yarn lint:changelog - name: Lint "format test" run: yarn lint:format-test - name: Lint docs code block run: yarn prettier "{docs,website/versioned_docs/version-stable}/**/*.md" --check env: # Make Prettier throws on embedded format PRETTIER_DEBUG: true - name: Lint workflow files run: | bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) ./actionlint -color shell: bash - name: Dependency Review # Doesn't support push event https://github.com/actions/dependency-review-action/issues/826 if: github.event_name == 'pull_request' uses: actions/dependency-review-action@56339e523c0409420f6c2c9a2f4292bbb3c07dd3 # v4.8.0 - name: Validate renovate config run: yarn dlx --package renovate@latest renovate-config-validator - name: Run yarn (/) run: | yarn yarn dedupe --check - name: Run yarn (/website) run: | yarn yarn dedupe --check working-directory: website - name: Run yarn (/scripts/release) run: | yarn yarn dedupe --check working-directory: scripts/release - name: Run yarn (/scripts/tools/bundle-test) run: | yarn yarn dedupe --check working-directory: scripts/tools/bundle-test - name: Run yarn (/scripts/tools/eslint-plugin-prettier-internal-rules) run: | yarn yarn dedupe --check working-directory: scripts/tools/eslint-plugin-prettier-internal-rules - name: Knip run: yarn lint:knip - name: Check File Changes run: echo "Listing changed files:" && git diff --name-only --exit-code && echo "No files changed during lint."