Skip to content

rustfmt

rustfmt #7

Workflow file for this run

on: [push, pull_request]
name: Rust
env:
# web_sys_unstable_apis is required to enable the web_sys clipboard API which eframe web uses,
# as well as by the wasm32-backend of the wgpu crate.
# https://rustwasm.github.io/wasm-bindgen/api/web_sys/struct.Clipboard.html
# https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html
RUSTFLAGS: --cfg=web_sys_unstable_apis -D warnings
RUSTDOCFLAGS: -D warnings
jobs:
fmt-crank-check-test:
name: Format + check + test
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.72.0
- name: Install packages (Linux)
if: runner.os == 'Linux'
#uses: awalsh128/[email protected]
#TODO(emilk) use upstream when https://github.com/awalsh128/cache-apt-pkgs-action/pull/90 is merged
uses: rerun-io/cache-apt-pkgs-action@59534850182063abf1b2c11bb3686722a12a8397
with:
packages: libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev libgtk-3-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
run: cargo fmt --all -- --check
- name: Lint vertical spacing
run: ./scripts/lint.py
- name: Install cargo-cranky
uses: baptiste0928/cargo-install@v1
with:
crate: cargo-cranky
- name: check --all-features
run: cargo check --locked --all-features --all-targets
- name: check egui_extras --all-features
run: cargo check --locked --all-features -p egui_extras
- name: check default features
run: cargo check --locked --all-targets
- name: check --no-default-features
run: cargo check --locked --no-default-features --lib --all-targets
- name: check eframe --no-default-features
run: cargo check --locked --no-default-features --features x11 --lib -p eframe
- name: check egui_extras --no-default-features
run: cargo check --locked --no-default-features --lib -p egui_extras
- name: check epaint --no-default-features
run: cargo check --locked --no-default-features --lib -p epaint
- name: Test doc-tests
run: cargo test --doc --all-features
- name: cargo doc --lib
run: cargo doc --lib --no-deps --all-features
- name: cargo doc --document-private-items
run: cargo doc --document-private-items --no-deps --all-features
- name: Test
run: cargo test --all-features
- name: Cranky
run: cargo cranky --all-targets --all-features -- -D warnings
- name: Cranky release
run: cargo cranky --all-targets --all-features --release -- -D warnings
# ---------------------------------------------------------------------------
check_wasm:
name: Check wasm32 + wasm-bindgen
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.72.0
targets: wasm32-unknown-unknown
- run: sudo apt-get update && sudo apt-get install libgtk-3-dev libatk1.0-dev
- name: Set up cargo cache
uses: Swatinem/rust-cache@v2
- name: Install cargo-cranky
uses: baptiste0928/cargo-install@v1
with:
crate: cargo-cranky
- name: Check wasm32 egui_demo_app
run: cargo check -p egui_demo_app --lib --target wasm32-unknown-unknown
- name: Check wasm32 egui_demo_app --all-features
run: cargo check -p egui_demo_app --lib --target wasm32-unknown-unknown --all-features
- name: Check wasm32 eframe
run: cargo check -p eframe --lib --no-default-features --features glow,persistence --target wasm32-unknown-unknown
- name: wasm-bindgen
uses: jetli/[email protected]
with:
version: "0.2.88"
- run: ./scripts/wasm_bindgen_check.sh --skip-setup
- name: Cranky wasm32
run: ./scripts/clippy_wasm.sh
# ---------------------------------------------------------------------------
cargo-deny:
strategy:
fail-fast: false
matrix:
include:
- target: aarch64-apple-darwin
- target: aarch64-linux-android
- target: i686-pc-windows-gnu
- target: i686-pc-windows-msvc
- target: i686-unknown-linux-gnu
- target: wasm32-unknown-unknown
- target: x86_64-apple-darwin
- target: x86_64-pc-windows-gnu
- target: x86_64-pc-windows-msvc
- target: x86_64-unknown-linux-gnu
- target: x86_64-unknown-linux-musl
- target: x86_64-unknown-redox
name: cargo-deny ${{ matrix.target }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v1
with:
rust-version: "1.72.0"
log-level: error
command: check
arguments: --target ${{ matrix.target }}
# ---------------------------------------------------------------------------
android:
name: android
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.72.0
targets: aarch64-linux-android
- name: Set up cargo cache
uses: Swatinem/rust-cache@v2
- run: cargo check --features wgpu,android-native-activity --target aarch64-linux-android
working-directory: crates/eframe
# ---------------------------------------------------------------------------
windows:
name: Check Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.72.0
- name: Set up cargo cache
uses: Swatinem/rust-cache@v2
- name: Check
run: cargo check --all-targets --all-features