on: [push, pull_request] name: CI 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-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: default toolchain: 1.61.0 override: true - name: Install packages (Linux) if: runner.os == 'Linux' run: sudo apt-get update && sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev libgtk-3-dev # libgtk-3-dev is used by rfd - name: Set up cargo cache uses: Swatinem/rust-cache@v2 - name: Rustfmt uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check - name: Install cargo-cranky uses: baptiste0928/cargo-install@v1 with: crate: cargo-cranky - name: Check all features uses: actions-rs/cargo@v1 with: command: check args: --locked --all-features - name: Check default features uses: actions-rs/cargo@v1 with: command: check args: --locked - name: Check no default features uses: actions-rs/cargo@v1 with: command: check args: --locked --no-default-features --lib - 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: Test uses: actions-rs/cargo@v1 with: command: test args: --all-features - name: Cranky uses: actions-rs/cargo@v1 with: command: cranky args: --all-targets --all-features -- -D warnings check_wasm: name: Check wasm32 + wasm-bindgen runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: 1.61.0 target: wasm32-unknown-unknown override: true - run: sudo apt-get update && sudo apt-get install libgtk-3-dev - name: Set up cargo cache uses: Swatinem/rust-cache@v2 - name: Check wasm32 egui_demo_app uses: actions-rs/cargo@v1 with: command: check args: -p egui_demo_app --lib --target wasm32-unknown-unknown - name: Check wasm32 egui_demo_app --all-features uses: actions-rs/cargo@v1 with: command: check args: -p egui_demo_app --lib --target wasm32-unknown-unknown --all-features - name: Check wasm32 eframe uses: actions-rs/cargo@v1 with: command: check args: -p eframe --lib --no-default-features --features glow,persistence --target wasm32-unknown-unknown - name: wasm-bindgen uses: jetli/wasm-bindgen-action@v0.1.0 with: version: "0.2.82" - run: ./sh/wasm_bindgen_check.sh --skip-setup cargo-deny: name: cargo deny runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: EmbarkStudios/cargo-deny-action@v1 with: rust-version: "1.61.0" android: name: android runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: 1.61.0 target: aarch64-linux-android override: true - name: Set up cargo cache uses: Swatinem/rust-cache@v2 - run: cargo check --features wgpu --target aarch64-linux-android working-directory: crates/eframe