# SPDX-License-Identifier: MPL-2.0 name: CI on: pull_request: branches: [main] push: branches: [main] jobs: check: name: Check runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v7 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y \ libgtk-4-dev \ libadwaita-1-dev \ libsecret-1-dev \ libgstreamer1.0-dev \ libgstreamer-plugins-base1.0-dev - name: Install Rust uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy - name: Check formatting run: cargo fmt --check - name: Clippy run: cargo clippy -- -W clippy::all - name: Check run: cargo check nix: name: Nix runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v7 - name: Install Nix uses: DeterminateSystems/nix-installer-action@v22 # No CI-level binary cache. magic-nix-cache is deprecated and now # fails with GitHub rate-limit errors mid-build, and its successor # wants a FlakeHub account this project does not need. System # dependencies still come prebuilt from cache.nixos.org; what this # costs is recompiling the crate graph each run, which is slower # but cannot fail for a reason that is not ours. # flake.nix maintains its own dependency list separate from the apt # packages the cargo job installs, so it drifts silently unless # something builds it. - name: Build the flake package run: nix build .#hangar --print-build-logs - name: Check the dev shell evaluates run: nix develop --command true