feat(useExhaustiveDependencies): add option to useExhaustiveDependencies to enable errors when the dependencies array is missing #6307
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 | |
RUSTUP_WINDOWS_PATH_ADD_BIN: 1 | |
jobs: | |
format: | |
name: Format project | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR branch | |
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@e013866c4215f77c925f42f60257dec7dd18836e # v1.2.1 | |
with: | |
components: rustfmt | |
bins: taplo-cli | |
cache-base: main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run format | |
run: | | |
cargo fmt --all --check | |
taplo format --check | |
lint: | |
name: Lint project | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR Branch | |
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@e013866c4215f77c925f42f60257dec7dd18836e # v1.2.1 | |
with: | |
components: clippy | |
cache-base: main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run clippy | |
run: | | |
cargo lint | |
cargo run -p rules_check | |
check-dependencies: | |
name: Check Dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR Branch | |
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- 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@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@e013866c4215f77c925f42f60257dec7dd18836e # v1.2.1 | |
with: | |
cache-base: main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run tests | |
run: cargo test --workspace | |
test-node-api: | |
name: Test node.js API | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR branch | |
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@e013866c4215f77c925f42f60257dec7dd18836e # v1.2.1 | |
with: | |
cache-target: release | |
cache-base: main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build main binary | |
run: cargo build -p biome_cli --release | |
- name: Install Node.js | |
uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 | |
with: | |
node-version: 20 | |
- name: Cache pnpm modules | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.pnpm-store | |
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}- | |
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 | |
- 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@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@e013866c4215f77c925f42f60257dec7dd18836e # v1.2.1 | |
with: | |
cache-base: main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run doc command | |
run: cargo documentation | |
codegen: | |
name: Codegen | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR branch | |
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Free Disk Space | |
uses: ./.github/actions/free-disk-space | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@e013866c4215f77c925f42f60257dec7dd18836e # v1.2.1 | |
with: | |
cache-base: main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- 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 migrate codegen | |
run: cargo codegen-migrate | |
- name: Check for git diff | |
run: | | |
if [[ `git status --porcelain` ]]; then | |
git status | |
git diff | |
exit 1 | |
fi |