feat(lint/useExhaustiveDependencies): support Preact #3223
Workflow file for this run
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
# Jobs run on pull request | |
name: Pull request | |
on: | |
pull_request: | |
branches: | |
- main | |
paths: # Only run when changes are made to rust code or root Cargo | |
- 'crates/**' | |
- 'fuzz/**' | |
- 'xtask/**' | |
- 'Cargo.toml' | |
- 'Cargo.lock' | |
- 'rust-toolchain.toml' | |
- 'rustfmt.toml' | |
# Cancel jobs when the PR is updated | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
env: | |
RUST_LOG: info | |
RUST_BACKTRACE: 1 | |
jobs: | |
format: | |
name: Format and Lint Rust Files | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR branch | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@b8edcc56aab474d90c7cf0bb8beeaf8334c15e9f # v1 | |
with: | |
components: rustfmt | |
bins: taplo-cli | |
cache-base: main | |
- name: Run format | |
run: | | |
cargo fmt --all --check | |
taplo format --check | |
lint: | |
name: Lint Rust Files | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR Branch | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@b8edcc56aab474d90c7cf0bb8beeaf8334c15e9f # v1 | |
with: | |
components: clippy | |
cache-base: main | |
- name: Run clippy | |
run: cargo lint | |
check-dependencies: | |
name: Check Dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR Branch | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
run: rustup toolchain install nightly | |
- name: Install udeps | |
run: cargo install cargo-udeps --locked | |
- name: Detect unused dependencies using udeps | |
run: cargo +nightly udeps --all-targets | |
test: | |
name: Test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
- os: windows-latest | |
- os: ubuntu-latest | |
steps: | |
- name: Checkout PR branch | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@b8edcc56aab474d90c7cf0bb8beeaf8334c15e9f # v1 | |
with: | |
bins: cargo-nextest | |
cache-base: main | |
- name: Run tests | |
run: cargo nextest run --workspace --verbose | |
- name: Run doctests | |
run: cargo test --doc | |
# fuzz-all: | |
# name: Build and init fuzzers | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Checkout PR branch | |
# uses: actions/checkout@v4 | |
# - name: Install toolchain | |
# uses: moonrepo/setup-rust@v1 | |
# with: | |
# bins: cargo-fuzz | |
# - name: Run init-fuzzer | |
# run: bash fuzz/init-fuzzer.sh | |
test-node-api: | |
name: Test node.js API | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR branch | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@b8edcc56aab474d90c7cf0bb8beeaf8334c15e9f # v1 | |
with: | |
cache-target: release | |
cache-base: main | |
- name: Build main binary | |
run: cargo build -p biome_cli --release | |
- name: Install Node.js | |
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 | |
with: | |
node-version: 20 | |
- name: Cache pnpm modules | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 | |
with: | |
path: ~/.pnpm-store | |
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}- | |
- uses: pnpm/action-setup@v3 | |
- name: Install wasm-pack | |
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh | |
- name: Build TypeScript code | |
run: | | |
pnpm --filter @biomejs/backend-jsonrpc i | |
pnpm --filter @biomejs/backend-jsonrpc run build | |
pnpm --filter @biomejs/js-api run build:wasm-bundler | |
pnpm --filter @biomejs/js-api run build:wasm-node | |
pnpm --filter @biomejs/js-api run build:wasm-web | |
pnpm --filter @biomejs/js-api i | |
pnpm --filter @biomejs/js-api run build | |
- name: Run JS tests | |
run: | | |
pnpm --filter @biomejs/backend-jsonrpc run test:ci | |
pnpm --filter @biomejs/js-api run test:ci | |
documentation: | |
name: Documentation | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR branch | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@b8edcc56aab474d90c7cf0bb8beeaf8334c15e9f # v1 | |
with: | |
cache-base: main | |
- name: Run doc command | |
run: cargo documentation | |
codegen: | |
name: Codegen | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR branch | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@b8edcc56aab474d90c7cf0bb8beeaf8334c15e9f # v1 | |
with: | |
cache-base: main | |
- name: Run the grammar codegen | |
run: cargo codegen grammar | |
- name: Run the analyzer codegen | |
run: cargo codegen analyzer | |
- name: Run the configuration codegen | |
run: cargo codegen-configuration | |
- name: Run the schema codegen | |
run: cargo codegen-schema | |
- name: Run the bindings codegen | |
run: cargo codegen-bindings | |
- name: Run the website codegen | |
run: | | |
cargo lintdoc | |
cargo codegen-website | |
- name: Check for git diff | |
run: | | |
if [[ `git status --porcelain` ]]; then | |
git status | |
exit 1 | |
fi |