blob: c9d25894b4545cbb2cecf62e08fbd88517d2d7b8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
name: Update flake inputs
on:
workflow_dispatch:
schedule:
- cron: "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 '.#with-shell'
- 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 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
GTK_USE_PORTAL: 0
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 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=$(git diff --exit-code flake.lock && echo 'false' || echo 'true') >> $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"
|