From 02fd889044b4f283171f00764ff20ea3b9494b0c Mon Sep 17 00:00:00 2001 From: Jake Stanger Date: Sun, 25 Feb 2024 21:19:35 +0000 Subject: [PATCH 1/2] ci: rewrite build workflow --- .github/workflows/build.yml | 85 ++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 39 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 810c0752..d89e8e38 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,18 +9,24 @@ on: env: CARGO_TERM_COLOR: always + RUSTFLAGS: '-Dwarnings' jobs: - build: + rustfmt: runs-on: ubuntu-latest - + name: 'Formatting' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true + - name: Check formatting + run: cargo fmt --check + + + clippy-base: + runs-on: ubuntu-latest + name: 'Clippy (Base features)' + steps: + - uses: actions/checkout@v4 - uses: Swatinem/rust-cache@v2 name: Cache dependencies @@ -30,49 +36,50 @@ jobs: sudo apt-get update sudo apt-get install libgtk-3-dev libgtk-layer-shell-dev - - name: Check formatting - run: cargo fmt --check + - name: Clippy + run: cargo clippy --no-default-features --features config+json + env: + # Allow some warnings through as we'll never get it perfect in a zero-feature situation + RUSTFLAGS: '-A unused-imports -A unused-variables -A unused-mut -A dead-code' - - name: Clippy (base features) - uses: actions-rs/clippy-check@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - args: --no-default-features --features config+json - - name: Clippy (all features) - uses: actions-rs/clippy-check@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - args: --all-features + clippy-all: + runs-on: ubuntu-latest + name: 'Clippy (All features)' + steps: + - uses: actions/checkout@v4 - - name: Build - run: cargo build --verbose + - uses: Swatinem/rust-cache@v2 + name: Cache dependencies - - name: Run tests - uses: actions-rs/cargo@v1 - with: - command: test + - name: Install build deps + run: | + sudo apt-get update + sudo apt-get install libgtk-3-dev libgtk-layer-shell-dev + - name: Clippy + run: cargo clippy --all-targets --all-features - build-nix: + build: + name: 'Build & Test' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: cachix/install-nix-action@v20 - with: - install_url: https://nixos.org/nix/install - extra_nix_config: | - auto-optimise-store = true - experimental-features = nix-command flakes + - uses: Swatinem/rust-cache@v2 + name: Cache dependencies - - uses: cachix/cachix-action@v12 - with: - name: jakestanger - signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' + - name: Install build deps + run: | + sudo apt-get update + sudo apt-get install libgtk-3-dev libgtk-layer-shell-dev - - uses: DeterminateSystems/magic-nix-cache-action@main + - name: Build + run: cargo build --verbose - - run: nix build --print-build-logs \ No newline at end of file + - name: Run tests + uses: actions-rs/cargo@v1 + with: + command: test \ No newline at end of file From 163a70e690e2a9950c23ef8164dafd762a6a1020 Mon Sep 17 00:00:00 2001 From: Jake Stanger Date: Sun, 25 Feb 2024 21:19:49 +0000 Subject: [PATCH 2/2] docs(readme): update nix caching info --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 08a34d8f..5e9afb39 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,8 @@ A flake is included with the repo which can be used with Home Manager. -There is a Cachix cache available at `https://app.cachix.org/cache/jakestanger`. +CI builds are automatically cached by Garnix. +You can use their binary cache by following the steps [here](https://garnix.io/docs/caching). ### Source