name: rust-ci
on:
  push:
    branches: [ master, release ]
  pull_request:

# sccache enable for rust/C builds
env:
  SCCACHE_GHA_ENABLED: "true"
  RUSTC_WRAPPER: "sccache"

jobs:
  rust-ci-run:
    name: Run rust-clippy analyzing and tests
    runs-on: ubuntu-latest
    if: github.event_name == 'push' || (github.head_ref != 'master' && github.head_ref != 'release')
    permissions:
      contents: read
    steps:
      # SETUP
      - uses: actions/checkout@v7
      - uses: dtolnay/rust-toolchain@stable
      - uses: Swatinem/rust-cache@v2
      - uses: mozilla-actions/sccache-action@v0.0.10

      # TESTS
      - name: Run tests
        run: cargo test --all-targets --all-features

      # CLIPPY
      - name: Run rust-clippy
        run: cargo clippy --all-targets --all-features -- -D warnings
