# Copied from https://github.com/rerun-io/rerun_template on: [push, pull_request] name: Rust env: RUSTFLAGS: -D warnings RUSTDOCFLAGS: -D warnings jobs: rust-check: name: Rust runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 with: profile: default toolchain: 1.76.0 override: true - name: Install packages (Linux) if: runner.os == 'Linux' && false # TODO: enable if eframe is part of the project, otherwise remove uses: awalsh128/cache-apt-pkgs-action@v1.3.0 with: # some deps used by eframe, if that is part of the project packages: libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev # libgtk-3-dev is used by rfd version: 1.0 execute_install_scripts: true - name: Set up cargo cache uses: Swatinem/rust-cache@v2 - name: Rustfmt uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check - name: check --all-features uses: actions-rs/cargo@v1 with: command: check args: --all-features --all-targets - name: check default features uses: actions-rs/cargo@v1 with: command: check args: --all-targets - name: check --no-default-features uses: actions-rs/cargo@v1 with: command: check args: --no-default-features --lib --all-targets - name: Test doc-tests uses: actions-rs/cargo@v1 with: command: test args: --doc --all-features - name: cargo doc --lib uses: actions-rs/cargo@v1 with: command: doc args: --lib --no-deps --all-features - name: cargo doc --document-private-items uses: actions-rs/cargo@v1 with: command: doc args: --document-private-items --no-deps --all-features - name: Build tests uses: actions-rs/cargo@v1 with: command: test args: --all-features --no-run - name: Run test uses: actions-rs/cargo@v1 with: command: test args: --all-features - name: Clippy uses: actions-rs/cargo@v1 with: command: clippy args: --all-targets --all-features -- -D warnings # --------------------------------------------------------------------------- check_wasm: name: Check wasm32 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: 1.76.0 target: wasm32-unknown-unknown override: true - name: Set up cargo cache uses: Swatinem/rust-cache@v2 - name: Check wasm32 uses: actions-rs/cargo@v1 with: command: check args: --target wasm32-unknown-unknown --lib - name: Clippy wasm32 env: CLIPPY_CONF_DIR: "scripts/clippy_wasm" # Use scripts/clippy_wasm/clippy.toml run: cargo clippy --target wasm32-unknown-unknown --lib -- -D warnings # --------------------------------------------------------------------------- cargo-deny: name: Check Rust dependencies (cargo-deny) runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: EmbarkStudios/cargo-deny-action@v1 with: rust-version: "1.76.0" log-level: warn command: check