
* Update to Rust 1.65 Because then you can use dynamic linking on Linux * Fix a bunch of clippy lints * Update changelogs * More clippy fixes
155 lines
4.6 KiB
YAML
155 lines
4.6 KiB
YAML
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-22.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: default
|
|
toolchain: 1.65.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-22.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.65.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: Install cargo-cranky
|
|
uses: baptiste0928/cargo-install@v1
|
|
with:
|
|
crate: cargo-cranky
|
|
|
|
- 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.83"
|
|
|
|
- run: ./sh/wasm_bindgen_check.sh --skip-setup
|
|
|
|
- name: Cranky wasm32
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: cranky
|
|
args: --target wasm32-unknown-unknown --all-features -p egui_demo_app --lib -- -D warnings
|
|
|
|
cargo-deny:
|
|
name: cargo deny
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: EmbarkStudios/cargo-deny-action@v1
|
|
with:
|
|
rust-version: "1.65.0"
|
|
|
|
android:
|
|
name: android
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.65.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
|