WIP Bun support #18322
This file contains 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: Lint CSS/JS/MD | |
on: | |
push: | |
# Only run if CSS/JS/MD-related files changed. | |
paths: | |
- '**.js' | |
- '**.cjs' | |
- '**.ts' | |
- '**.tsx' | |
- '**.css' | |
- 'docs/**/*.md' | |
- 'packages/**/*.md' | |
- '.eslint*' | |
- '.markdownlint*' | |
- '.npmpackagejsonlintrc.json' | |
- '.nvmrc' | |
- '.prettier*' | |
- '.stylelint*' | |
- '**/package.json' | |
- 'package-lock.json' | |
branches: | |
- main | |
- release/* | |
pull_request: | |
# Only run if CSS/JS/MD-related files changed. | |
paths: | |
- '**.js' | |
- '**.cjs' | |
- '**.ts' | |
- '**.tsx' | |
- '**.css' | |
- 'docs/**/*.md' | |
- 'packages/**/*.md' | |
- '.eslint*' | |
- '.markdownlint*' | |
- '.npmpackagejsonlintrc.json' | |
- '.nvmrc' | |
- '.prettier*' | |
- '.stylelint*' | |
- '**/package.json' | |
- 'package-lock.json' | |
# Cancels all previous workflow runs for pull requests that have not completed. | |
concurrency: | |
# The concurrency group contains the workflow name and the (target) branch name. | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
permissions: | |
checks: write # for ataylorme/eslint-annotate-action to create checks | |
contents: read # for actions/checkout to fetch code | |
pull-requests: read # for ataylorme/eslint-annotate-action to get changed PR files | |
timeout-minutes: 20 | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f | |
with: | |
disable-sudo: true | |
disable-file-monitoring: true | |
egress-policy: block | |
allowed-endpoints: > | |
api.github.com:443 | |
github.com:443 | |
registry.npmjs.org:443 | |
bun.sh:443 | |
54.185.253.63:443 | |
- name: Checkout | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
- name: Setup Bun | |
uses: oven-sh/setup-bun@9b21598af8d4dfc302e5a30250007de0fda92acc | |
- name: Install dependencies | |
run: bun install | |
env: | |
PUPPETEER_SKIP_DOWNLOAD: true | |
- name: Markdown Lint | |
run: bun run lint:md | |
- name: CSS Lint | |
run: bun run lint:css | |
- name: package.json Lint | |
run: bun run lint:package-json | |
# Do this first so that the types are available to ESLint, | |
# particularly the more sophisticated `@typescript/eslint` rules. | |
- name: Type checking | |
run: bun run workflow:bundle-packages:types | |
- name: JS Lint | |
run: bun run lint:js | |
env: | |
NODE_OPTIONS: --max-old-space-size=4096 | |
if: > | |
github.event.pull_request.head.repo.fork == true || | |
github.event.pull_request.user.login == 'dependabot[bot]' | |
- name: JS Lint Report | |
run: bun run lint:js:report | |
continue-on-error: true | |
env: | |
NODE_OPTIONS: --max-old-space-size=4096 | |
# Prevent generating the ESLint report if PR is from a fork or authored by Dependabot. | |
if: > | |
github.event.pull_request.head.repo.fork == false && | |
github.event.pull_request.user.login != 'dependabot[bot]' | |
- name: Annotate JS Lint Results | |
uses: ataylorme/eslint-annotate-action@3.0.0 | |
with: | |
repo-token: '${{ secrets.GITHUB_TOKEN }}' | |
report-json: 'build/lint-js-report.json' | |
# The action cannot annotate the PR when run from a PR fork or authored by Dependabot. | |
if: > | |
github.event.pull_request.head.repo.fork == false && | |
github.event.pull_request.user.login != 'dependabot[bot]' | |
- name: JSON Schema validation | |
run: bun run test:schema |