detached a7abb18

fix(ci): pin workflow go toolchain

commit
a7abb1814436985ce17593c018d236b54674b96d
author
brice · · 2026-06-11 04:24 UTC
parent
0f5f939
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
2 files · +13 -2
M .github/workflows/ci.yml +10 -0
@@ -49,6 +49,11 @@ jobs:
4949 pacman -Syu --noconfirm
5050 pacman -S --noconfirm git go webkitgtk-6.0 gtk4 gobject-introspection base-devel brotli
5151 - uses: actions/checkout@v6
52+ - name: Set up pinned Go toolchain
53+ uses: actions/setup-go@v6
54+ with:
55+ go-version-file: go.mod
56+ cache: false
5257 - name: Cache Go modules
5358 uses: actions/cache@v5
5459 with:
@@ -88,6 +93,11 @@ jobs:
8893 pacman -Syu --noconfirm
8994 pacman -S --noconfirm git go webkitgtk-6.0 gtk4 libadwaita gobject-introspection base-devel brotli dbus
9095 - uses: actions/checkout@v6
96+ - name: Set up pinned Go toolchain
97+ uses: actions/setup-go@v6
98+ with:
99+ go-version-file: go.mod
100+ cache: false
91101 - name: Cache Go modules
92102 uses: actions/cache@v5
93103 with:
@@ -49,6 +49,11 @@ jobs:
49 pacman -Syu --noconfirm49 pacman -Syu --noconfirm
50 pacman -S --noconfirm git go webkitgtk-6.0 gtk4 gobject-introspection base-devel brotli50 pacman -S --noconfirm git go webkitgtk-6.0 gtk4 gobject-introspection base-devel brotli
51 - uses: actions/checkout@v651 - uses: actions/checkout@v6
52+ - name: Set up pinned Go toolchain
53+ uses: actions/setup-go@v6
54+ with:
55+ go-version-file: go.mod
56+ cache: false
52 - name: Cache Go modules57 - name: Cache Go modules
53 uses: actions/cache@v558 uses: actions/cache@v5
54 with:59 with:
@@ -88,6 +93,11 @@ jobs:
88 pacman -Syu --noconfirm93 pacman -Syu --noconfirm
89 pacman -S --noconfirm git go webkitgtk-6.0 gtk4 libadwaita gobject-introspection base-devel brotli dbus94 pacman -S --noconfirm git go webkitgtk-6.0 gtk4 libadwaita gobject-introspection base-devel brotli dbus
90 - uses: actions/checkout@v695 - uses: actions/checkout@v6
96+ - name: Set up pinned Go toolchain
97+ uses: actions/setup-go@v6
98+ with:
99+ go-version-file: go.mod
100+ cache: false
91 - name: Cache Go modules101 - name: Cache Go modules
92 uses: actions/cache@v5102 uses: actions/cache@v5
93 with:103 with:
M internal/infrastructure/externaltheme/noctalia/watcher_test.go +3 -2
@@ -89,7 +89,8 @@ func TestFileWatcherPathChangeRestartsAndDisabledStops(t *testing.T) {
8989 func TestFileWatcherDebouncesBurstToOneCallback(t *testing.T) {
9090 dir := t.TempDir()
9191 path := writeThemeFile(t, dir, "theme.json")
92- watcher := newFastWatcher()
92+ watcher := NewFileWatcher()
93+ watcher.delay = 100 * time.Millisecond
9394 changes := make(chan struct{}, 8)
9495
9596 if err := watcher.Start(context.Background(), watcherConfig(path), func() { changes <- struct{}{} }); err != nil {
@@ -100,7 +101,7 @@ func TestFileWatcherDebouncesBurstToOneCallback(t *testing.T) {
100101 }
101102
102103 waitForChange(t, changes)
103- assertNoChange(t, changes, 80*time.Millisecond)
104+ assertNoChange(t, changes, 150*time.Millisecond)
104105 }
105106
106107 func TestFileWatcherAtomicRenameWriteEmitsCallback(t *testing.T) {
@@ -89,7 +89,8 @@ func TestFileWatcherPathChangeRestartsAndDisabledStops(t *testing.T) {
89 func TestFileWatcherDebouncesBurstToOneCallback(t *testing.T) {89 func TestFileWatcherDebouncesBurstToOneCallback(t *testing.T) {
90 dir := t.TempDir()90 dir := t.TempDir()
91 path := writeThemeFile(t, dir, "theme.json")91 path := writeThemeFile(t, dir, "theme.json")
92- watcher := newFastWatcher()92+ watcher := NewFileWatcher()
93+ watcher.delay = 100 * time.Millisecond
93 changes := make(chan struct{}, 8)94 changes := make(chan struct{}, 8)
94 95
95 if err := watcher.Start(context.Background(), watcherConfig(path), func() { changes <- struct{}{} }); err != nil {96 if err := watcher.Start(context.Background(), watcherConfig(path), func() { changes <- struct{}{} }); err != nil {
@@ -100,7 +101,7 @@ func TestFileWatcherDebouncesBurstToOneCallback(t *testing.T) {
100 }101 }
101 102
102 waitForChange(t, changes)103 waitForChange(t, changes)
103- assertNoChange(t, changes, 80*time.Millisecond)104+ assertNoChange(t, changes, 150*time.Millisecond)
104 }105 }
105 106
106 func TestFileWatcherAtomicRenameWriteEmitsCallback(t *testing.T) {107 func TestFileWatcherAtomicRenameWriteEmitsCallback(t *testing.T) {

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close