feat(lint): implement a useRegexLiterals rule #1297
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@v4 | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@v1 | |
with: | |
components: rustfmt | |
bins: taplo-cli | |
- 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@v4 | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@v1 | |
with: | |
components: clippy | |
- name: Run clippy | |
run: cargo lint | |
check-dependencies: | |
name: Check Dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR Branch | |
uses: actions/checkout@v4 | |
- 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 | |
test: | |
name: Test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
- os: windows-latest | |
- os: ubuntu-latest | |
steps: | |
- name: Free Disk Space (Ubuntu) | |
if: matrix.os == 'ubuntu-latest' | |
uses: jlumbroso/free-disk-space@main | |
with: | |
android: true | |
- name: Checkout PR branch | |
uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@v1 | |
with: | |
bins: cargo-nextest | |
- 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@v4 | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@v1 | |
- name: Build main binary | |
run: cargo build -p biome_cli --release | |
- name: Install Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Cache pnpm modules | |
uses: actions/cache@v3 | |
with: | |
path: ~/.pnpm-store | |
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}- | |
- uses: pnpm/[email protected] | |
with: | |
version: 8 | |
- name: Install wasm-pack | |
uses: jetli/[email protected] | |
with: | |
version: 'latest' | |
- name: Build TypeScript code | |
run: | | |
pnpm --prefix packages/@biomejs/backend-jsonrpc i | |
pnpm --prefix packages/@biomejs/backend-jsonrpc run build | |
pnpm --prefix packages/@biomejs/js-api run build:wasm-bundler | |
pnpm --prefix packages/@biomejs/js-api run build:wasm-node | |
pnpm --prefix packages/@biomejs/js-api run build:wasm-web | |
pnpm --prefix packages/@biomejs/js-api i | |
pnpm --prefix packages/@biomejs/js-api run build | |
- name: Run JS tests | |
run: | | |
pnpm --prefix packages/@biomejs/backend-jsonrpc test:ci | |
pnpm --prefix packages/@biomejs/js-api test:ci | |
documentation: | |
name: Documentation | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR branch | |
uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@v1 | |
- name: Run doc command | |
run: cargo documentation | |
codegen: | |
name: Codegen | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout PR branch | |
uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: moonrepo/setup-rust@v1 | |
- 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 |