summaryrefslogtreecommitdiff
path: root/.github/workflows/update-flake-inputs.yml
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-07-25 21:35:29 +1000
committerGitHub <noreply@github.com>2025-07-25 21:35:29 +1000
commitf2464fd414b0e4dafd1e8206aa0067b621b7b185 (patch)
treecde83a9a4c73d11fc7d81cb0f264b162a645dfd5 /.github/workflows/update-flake-inputs.yml
parentdcontent: create bluetooth panel (diff)
downloadcaelestia-shell-f2464fd414b0e4dafd1e8206aa0067b621b7b185.tar.gz
caelestia-shell-f2464fd414b0e4dafd1e8206aa0067b621b7b185.tar.bz2
caelestia-shell-f2464fd414b0e4dafd1e8206aa0067b621b7b185.zip
ci: add flake update action (#267)
* create flake update action * what am i doing * fix * try nixpkgs.hyprland * try flake * use add * try sway + cache nix * use install * fix pgrep * fix sway exit * screw sway ipc * get ready for merge * [CI] chore: update flake * finally ready
Diffstat (limited to '.github/workflows/update-flake-inputs.yml')
-rw-r--r--.github/workflows/update-flake-inputs.yml86
1 files changed, 86 insertions, 0 deletions
diff --git a/.github/workflows/update-flake-inputs.yml b/.github/workflows/update-flake-inputs.yml
new file mode 100644
index 0000000..f304d6c
--- /dev/null
+++ b/.github/workflows/update-flake-inputs.yml
@@ -0,0 +1,86 @@
+name: Update flake inputs
+
+on:
+ workflow_dispatch:
+ push:
+ branches:
+ - main
+
+jobs:
+ update-flake:
+ runs-on: ubuntu-latest
+
+ permissions:
+ contents: write
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install Nix
+ uses: nixbuild/nix-quick-install-action@v31
+ with:
+ nix_conf: |
+ keep-env-derivations = true
+ keep-outputs = true
+
+ - name: Restore and save Nix store
+ uses: nix-community/cache-nix-action@v6
+ with:
+ # restore and save a cache using this key
+ primary-key: nix-${{ hashFiles('**/*.nix', '**/flake.lock') }}
+ # if there's no cache hit, restore a cache by this prefix
+ restore-prefixes-first-match: nix-
+ # collect garbage until the Nix store size (in bytes) is at most this number
+ # before trying to save a new cache
+ # 1G = 1073741824
+ gc-max-store-size-linux: 1G
+ # do purge caches
+ purge: true
+ # purge all versions of the cache
+ purge-prefixes: nix-
+ # created more than this number of seconds ago
+ purge-created: 0
+ # or, last accessed more than this number of seconds ago
+ # relative to the start of the `Post Restore and save Nix store` phase
+ purge-last-accessed: 0
+ # except any version with the key that is the same as the `primary-key`
+ purge-primary-key: never
+
+ - name: Update flake inputs
+ run: nix flake update
+
+ - name: Attempt to build flake
+ run: nix build
+
+ - name: Test on Sway
+ env:
+ XDG_RUNTIME_DIR: /home/runner/runtime
+ WLR_BACKENDS: headless
+ WLR_LIBINPUT_NO_DEVICES: 1
+ WAYLAND_DISPLAY: wayland-1
+ run: |
+ mkdir $XDG_RUNTIME_DIR
+ chown $USER $XDG_RUNTIME_DIR
+ chmod 0700 $XDG_RUNTIME_DIR
+
+ nix profile install 'nixpkgs#sway'
+ sway &
+ sleep 3 # Give Sway some time to start
+ result/bin/caelestia-shell -d
+ sleep 3 # Give the shell some time to start (and die)
+ pgrep .quickshell-wra # Fail job if shell died
+
+ result/bin/caelestia-shell kill
+ killall sway # Screw using IPC
+
+ - name: Check for changes
+ id: check
+ run: echo modified=$(test -n "$(git status --porcelain)" && echo 'true' || echo 'false') >> $GITHUB_OUTPUT
+
+ - name: Commit and push changes
+ if: steps.check.outputs.modified == 'true'
+ uses: EndBug/add-and-commit@v9
+ with:
+ add: flake.lock
+ default_author: github_actions
+ message: "[CI] chore: update flake"