name: Rust on: push: branches: - main pull_request: workflow_dispatch: jobs: rustfmt: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: https://github.com/dtolnay/rust-toolchain@nightly with: components: rustfmt - run: cargo fmt --all -- --check clippy: runs-on: ubuntu-latest steps: - name: Install Dependencies run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ g++ pkg-config libx11-dev libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev - uses: actions/checkout@v4 - uses: https://github.com/dtolnay/rust-toolchain@1.79.0 id: rust-toolchain with: components: clippy - uses: actions/cache@v4 with: path: | ~/.cargo/git ~/.cargo/registry target key: "${{runner.os}} Rust+Clippy ${{steps.rust-toolchain.outputs.cachekey}}" - run: cargo clippy --locked --all-targets -- -D warnings env: RUSTFLAGS: "-D warnings" build: runs-on: ubuntu-latest steps: - name: Install Dependencies run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ g++ pkg-config libx11-dev libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev - uses: actions/checkout@v4 - uses: https://github.com/dtolnay/rust-toolchain@stable id: rust-toolchain - uses: actions/cache@v4 with: path: | ~/.cargo/git ~/.cargo/registry target key: "${{runner.os}} Rust ${{steps.rust-toolchain.outputs.cachekey}}" - run: mkdir .ci-destdir - run: cargo install --path . --locked --root .ci-destdir - run: tree .ci-destdir - uses: forgejo/upload-artifact@v4 with: name: Powercreep path: .ci-destdir/*