Skip to content

fix: Ensure noUpdateNotifier from turbo.json is respected #7186

fix: Ensure noUpdateNotifier from turbo.json is respected

fix: Ensure noUpdateNotifier from turbo.json is respected #7186

Workflow file for this run

name: Lint
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
env:
RUSTFLAGS: "-D warnings"
permissions:
actions: write
contents: read
pull-requests: read
jobs:
determine_changes:
name: Determine changes
runs-on: ubuntu-latest
timeout-minutes: 5
permissions:
contents: read
outputs:
rust: ${{ steps.filter.outputs.rust }}
formatting: ${{ steps.filter.outputs.formatting }}
dependencies: ${{ steps.filter.outputs.dependencies }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check for changes
uses: dorny/paths-filter@v3
id: filter
with:
filters: |
rust:
- ".github/actions/**"
- ".github/workflows/lint.yml"
- "Cargo.**"
- "crates/**"
- ".cargo/**"
- "rust-toolchain.toml"
formatting:
- "**/*.{yml,yaml,md,mdx,js,jsx,ts,tsx,json,toml,css}"
- "pnpm-lock.yaml"
- "package.json"
dependencies:
- "Cargo.lock"
- "Cargo.toml"
- "crates/**/Cargo.toml"
- "pnpm-lock.yaml"
- "package.json"
- "packages/**/package.json"
rust_fmt:
name: Rust format
needs: determine_changes
if: ${{ needs.determine_changes.outputs.rust == 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Rust
uses: ./.github/actions/setup-rust
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Run cargo fmt check
run: cargo fmt --check
rust_clippy:
name: Rust clippy
needs: determine_changes
if: ${{ needs.determine_changes.outputs.rust == 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup-environment
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
node: "false"
- name: Run cargo clippy
run: cargo lint
rust_check:
name: Rust check
needs: determine_changes
if: ${{ needs.determine_changes.outputs.rust == 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup-environment
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
node: "false"
- name: Run cargo check
run: cargo check --workspace
rust_licenses:
name: Rust licenses
needs: determine_changes
if: ${{ needs.determine_changes.outputs.rust == 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check licenses
uses: EmbarkStudios/cargo-deny-action@v2
with:
command: check licenses
format_lint:
name: Formatting
needs: determine_changes
if: ${{ needs.determine_changes.outputs.formatting == 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 30
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
TURBO_CACHE: remote:rw
steps:
- name: Checkout
uses: actions/checkout@v4
- name: "Setup Node"
uses: ./.github/actions/setup-node
- name: Install Global Turbo
uses: ./.github/actions/install-global-turbo
- name: Lint
# Manually set TURBO_API to an empty string to override Hetzner env
run: |
TURBO_API= turbo run quality --env-mode=strict
rust_audit:
name: Rust security audit
needs: determine_changes
if: ${{ needs.determine_changes.outputs.dependencies == 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 10
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Rust
uses: ./.github/actions/setup-rust
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Run cargo audit
run: |
cargo install cargo-audit --locked --quiet
cargo audit --deny unsound --deny yanked
js_audit:
name: JS security audit
needs: determine_changes
if: ${{ needs.determine_changes.outputs.dependencies == 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 10
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: ./.github/actions/setup-node
- name: Run pnpm audit
run: pnpm audit --prod --audit-level low
cleanup:
name: Cleanup
needs:
- determine_changes
- rust_fmt
- rust_clippy
- rust_check
- rust_licenses
- rust_audit
- js_audit
- format_lint
if: always()
uses: ./.github/workflows/pr-clean-caches.yml
secrets: inherit