diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..b6f0519 --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,48 @@ +name: Rust + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +env: + CARGO_TERM_COLOR: always + +jobs: + fmt: + name: Formatting + runs-on: ubuntu-latest + steps: + - name: Checkout Actions Repository + uses: actions/checkout@v3 + + - name: Setup Rust + uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + with: + toolchain: "stable" + components: "rustfmt,clippy" + + - name: cargo fmt + run: cargo fmt --all -- --check + + - name: Install dependencies (Linux) + run: sudo apt-get update && sudo apt-get install -y libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev libclang-dev libgtk-3-dev + + - name: Clippy + run: cargo clippy --workspace --no-deps --all-features --all-targets -- -D warnings + + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout Actions Repository + uses: actions/checkout@v3 + + - name: Setup Rust + uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + with: + toolchain: "stable" + + - name: Build + run: cargo wasm --verbose