name: Rust on: push: branches: [ "main" ] pull_request: branches: [ "main" ] env: CARGO_TERM_COLOR: always jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install system dependencies run: | sudo apt-get update sudo apt-get install -y \ libwebkit2gtk-4.1-dev \ libjavascriptcoregtk-4.1-dev \ libsoup-3.0-dev \ libgtk-3-dev \ libappindicator3-dev \ librsvg2-dev \ patchelf \ libssl-dev \ libdbus-1-dev - uses: dtolnay/rust-toolchain@stable with: components: clippy, rustfmt - uses: Swatinem/rust-cache@v2 - name: Check formatting run: cargo fmt --check - name: Lint with clippy run: cargo clippy -- -D warnings build: runs-on: ubuntu-latest needs: [lint] steps: - uses: actions/checkout@v4 - name: Install system dependencies run: | sudo apt-get update sudo apt-get install -y \ libwebkit2gtk-4.1-dev \ libjavascriptcoregtk-4.1-dev \ libsoup-3.0-dev \ libgtk-3-dev \ libappindicator3-dev \ librsvg2-dev \ patchelf \ libssl-dev \ libdbus-1-dev - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - name: Build (release) run: cargo build --release test: runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@v4 - name: Install system dependencies run: | sudo apt-get update sudo apt-get install -y \ libwebkit2gtk-4.1-dev \ libjavascriptcoregtk-4.1-dev \ libsoup-3.0-dev \ libgtk-3-dev \ libappindicator3-dev \ librsvg2-dev \ patchelf \ libssl-dev \ libdbus-1-dev - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - name: Run tests run: cargo test