name: CI on: push: paths: - 'src/**' - 'tests/**' - 'cassady-desktop/**' - 'docs/**' - 'plans/**' - '*.md' - 'Cargo.toml' - 'Cargo.lock' - 'build.rs' - 'package.json' - 'npm/**' - '.github/workflows/**' permissions: contents: read env: CARGO_TERM_COLOR: always jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v4 - name: Install Linux desktop build dependencies run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ pkg-config \ libwebkit2gtk-4.1-dev \ libgtk-3-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ libxdo-dev \ libssl-dev - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable - name: Cache Cargo artifacts uses: Swatinem/rust-cache@v2 - name: Build all targets run: cargo build --locked --all-targets test: name: Test runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v4 - name: Install Linux desktop build dependencies run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ pkg-config \ libwebkit2gtk-4.1-dev \ libgtk-3-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ libxdo-dev \ libssl-dev - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable - name: Cache Cargo artifacts uses: Swatinem/rust-cache@v2 - name: Run tests run: cargo test --locked --all-targets