From d8037819f01ef2eb920516ce50237a922019684b Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Mon, 4 Aug 2025 15:40:17 +1000 Subject: ci: add flake update workflow Also add contributing, funding and issue templates parser: add kill option to shell version: fix errors when not on arch --- .github/workflows/update-flake-inputs.yml | 113 ++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 .github/workflows/update-flake-inputs.yml (limited to '.github/workflows') diff --git a/.github/workflows/update-flake-inputs.yml b/.github/workflows/update-flake-inputs.yml new file mode 100644 index 0000000..a751b27 --- /dev/null +++ b/.github/workflows/update-flake-inputs.yml @@ -0,0 +1,113 @@ +name: Update flake inputs + +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * 0' + +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 modules + run: | + result/bin/caelestia -v + result/bin/caelestia -h + result/bin/caelestia toggle -h + result/bin/caelestia scheme -h + result/bin/caelestia scheme list + result/bin/caelestia scheme get + result/bin/caelestia scheme set -n gruvbox -f hard -m dark -v content + result/bin/caelestia scheme set -r + result/bin/caelestia screenshot -h + result/bin/caelestia record -h + result/bin/caelestia clipboard -h + result/bin/caelestia emoji -h + result/bin/caelestia emoji + result/bin/caelestia wallpaper -h + result/bin/caelestia pip -h + + - name: Test graphical stuff + 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) + + # Test CLI graphical modules + result/bin/caelestia screenshot + result/bin/caelestia record + result/bin/caelestia clipboard & + result/bin/caelestia emoji -p & + result/bin/caelestia shell -s + result/bin/caelestia shell drawers list + result/bin/caelestia shell mpris list + result/bin/caelestia shell notifs clear + + pgrep .quickshell-wra # Fail job if shell died + result/bin/caelestia shell -k + 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" -- cgit v1.2.3-freya