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
This commit is contained in:
2 * r + 2 * t 2025-07-25 21:35:29 +10:00 committed by GitHub
parent 982a5a3e8d
commit f2464fd414
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 96 additions and 10 deletions

View file

@ -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"

20
flake.lock generated
View file

@ -31,11 +31,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753175548, "lastModified": 1753407718,
"narHash": "sha256-SdrlgrnijrM0I8LgfMMKbD310ga4fNN54HfWCtR+Kjw=", "narHash": "sha256-VnqE8hpqyIdJ91OBaJatxGyNccev+OC19U/MVZUd/0E=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "cli", "repo": "cli",
"rev": "13a2d46d082ba09eb4934cec092f6085134e58e0", "rev": "2bde2ddfbf56277fbf93af96fe3a88cb042b6696",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -46,11 +46,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1752950548, "lastModified": 1753250450,
"narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=", "narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c87b95e25065c028d31a94f06a62927d18763fdf", "rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -67,11 +67,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753090730, "lastModified": 1753402503,
"narHash": "sha256-QG14m53ZGp2Gk7xD2Q+Tf7RYCKfk/BYRaBtX3X4IKbc=", "narHash": "sha256-cc1seYNwhhk9f74NpJSFRmQFjDzXInq66/dSVs2eK4Y=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "db77c71c216530159c2dcf5b269ebb4706b2e2dd", "rev": "4dad44757085a42423f758bf0177cebcd07b4a4a",
"revCount": 653, "revCount": 656,
"type": "git", "type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell" "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}, },