name: CI on: push: branches: [master] pull_request: env: CARGO_TERM_COLOR: always jobs: lint: name: Clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install system dependencies run: | sudo apt-get update sudo apt-get install -y pkg-config libxkbcommon-dev libwayland-dev - uses: https://github.com/dtolnay/rust-toolchain@stable with: components: clippy - uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-lint-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-lint- ${{ runner.os }}-cargo- - name: Run clippy run: cargo clippy --all-features -- -D warnings -W clippy::pedantic build-debug: name: Build (debug) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install system dependencies run: | sudo apt-get update sudo apt-get install -y pkg-config libxkbcommon-dev libwayland-dev - uses: https://github.com/dtolnay/rust-toolchain@stable - uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-debug- ${{ runner.os }}-cargo- - name: Build (debug) run: cargo build build-release: name: Build (release) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install system dependencies run: | sudo apt-get update sudo apt-get install -y pkg-config libxkbcommon-dev libwayland-dev - uses: https://github.com/dtolnay/rust-toolchain@stable - uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-release-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-release- ${{ runner.os }}-cargo- - name: Build (release) run: cargo build --release notify: name: Notify needs: [lint, build-debug, build-release] runs-on: ubuntu-latest if: always() steps: - uses: https://git.lerch.org/lobo/action-notify-ntfy@v2 with: host: ${{ secrets.NTFY_HOST }} topic: ${{ secrets.NTFY_TOPIC }} user: ${{ secrets.NTFY_USER }} password: ${{ secrets.NTFY_PASSWORD }}