detached 4b644f1

ci: optimize workflows with scoped triggers, npm caching, and lint version alignment

commit
4b644f1406acf50d724fc0e0b5e64cd1d01e0fe1
author
brice · · 2025-12-22 17:15 UTC
parent
4515dbd
signature
unsigned
3 files · +68 -5
M .github/workflows/ci.yml +37 -4
@@ -3,10 +3,29 @@ name: CI
33 on:
44 push:
55 branches: [dev, main]
6- paths-ignore:
7- - '**.md'
8- - 'docs/**'
9- - 'LICENSE'
6+ paths:
7+ - '**.go'
8+ - 'go.mod'
9+ - 'go.sum'
10+ - '.golangci.yml'
11+ - 'Makefile'
12+ - 'sqlc.yaml'
13+ - 'assets/**'
14+ - '!**.md'
15+ - '!docs/**'
16+ - '!LICENSE'
17+ pull_request:
18+ paths:
19+ - '**.go'
20+ - 'go.mod'
21+ - 'go.sum'
22+ - '.golangci.yml'
23+ - 'Makefile'
24+ - 'sqlc.yaml'
25+ - 'assets/**'
26+ - '!**.md'
27+ - '!docs/**'
28+ - '!LICENSE'
1029
1130 jobs:
1231 lint:
@@ -33,6 +52,13 @@ jobs:
3352 key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }}
3453 restore-keys: |
3554 ${{ runner.os }}-go-build-
55+ - name: Cache npm
56+ uses: actions/cache@v4
57+ with:
58+ path: ~/.npm
59+ key: ${{ runner.os }}-npm-${{ hashFiles('webui/package-lock.json') }}
60+ restore-keys: |
61+ ${{ runner.os }}-npm-
3662 - name: Build frontend assets
3763 run: make build-frontend
3864 - name: Install golangci-lint
@@ -65,6 +91,13 @@ jobs:
6591 key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }}
6692 restore-keys: |
6793 ${{ runner.os }}-go-build-
94+ - name: Cache npm
95+ uses: actions/cache@v4
96+ with:
97+ path: ~/.npm
98+ key: ${{ runner.os }}-npm-${{ hashFiles('webui/package-lock.json') }}
99+ restore-keys: |
100+ ${{ runner.os }}-npm-
68101 - name: Build frontend assets
69102 run: make build-frontend
70103 - name: Run tests
@@ -3,10 +3,29 @@ name: CI
3 on:3 on:
4 push:4 push:
5 branches: [dev, main]5 branches: [dev, main]
6- paths-ignore:6+ paths:
7- - '**.md'7+ - '**.go'
8- - 'docs/**'8+ - 'go.mod'
9- - 'LICENSE'9+ - 'go.sum'
10+ - '.golangci.yml'
11+ - 'Makefile'
12+ - 'sqlc.yaml'
13+ - 'assets/**'
14+ - '!**.md'
15+ - '!docs/**'
16+ - '!LICENSE'
17+ pull_request:
18+ paths:
19+ - '**.go'
20+ - 'go.mod'
21+ - 'go.sum'
22+ - '.golangci.yml'
23+ - 'Makefile'
24+ - 'sqlc.yaml'
25+ - 'assets/**'
26+ - '!**.md'
27+ - '!docs/**'
28+ - '!LICENSE'
10 29
11 jobs:30 jobs:
12 lint:31 lint:
@@ -33,6 +52,13 @@ jobs:
33 key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }}52 key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }}
34 restore-keys: |53 restore-keys: |
35 ${{ runner.os }}-go-build-54 ${{ runner.os }}-go-build-
55+ - name: Cache npm
56+ uses: actions/cache@v4
57+ with:
58+ path: ~/.npm
59+ key: ${{ runner.os }}-npm-${{ hashFiles('webui/package-lock.json') }}
60+ restore-keys: |
61+ ${{ runner.os }}-npm-
36 - name: Build frontend assets62 - name: Build frontend assets
37 run: make build-frontend63 run: make build-frontend
38 - name: Install golangci-lint64 - name: Install golangci-lint
@@ -65,6 +91,13 @@ jobs:
65 key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }}91 key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }}
66 restore-keys: |92 restore-keys: |
67 ${{ runner.os }}-go-build-93 ${{ runner.os }}-go-build-
94+ - name: Cache npm
95+ uses: actions/cache@v4
96+ with:
97+ path: ~/.npm
98+ key: ${{ runner.os }}-npm-${{ hashFiles('webui/package-lock.json') }}
99+ restore-keys: |
100+ ${{ runner.os }}-npm-
68 - name: Build frontend assets101 - name: Build frontend assets
69 run: make build-frontend102 run: make build-frontend
70 - name: Run tests103 - name: Run tests
M .github/workflows/release.yml +1 -1
@@ -56,7 +56,7 @@ jobs:
5656 - name: Run golangci-lint
5757 uses: golangci/golangci-lint-action@v7
5858 with:
59- version: v2.4
59+ version: v2.6.2
6060
6161 test:
6262 needs: check-changes
@@ -56,7 +56,7 @@ jobs:
56 - name: Run golangci-lint56 - name: Run golangci-lint
57 uses: golangci/golangci-lint-action@v757 uses: golangci/golangci-lint-action@v7
58 with:58 with:
59- version: v2.459+ version: v2.6.2
60 60
61 test:61 test:
62 needs: check-changes62 needs: check-changes
A .github/workflows/webui.yml +30 -0
@@ -0,0 +1,30 @@
1+name: WebUI CI
2+
3+on:
4+ push:
5+ branches: [dev, main]
6+ paths:
7+ - 'webui/**'
8+ pull_request:
9+ paths:
10+ - 'webui/**'
11+
12+jobs:
13+ check:
14+ runs-on: ubuntu-latest
15+ steps:
16+ - uses: actions/checkout@v6
17+
18+ - uses: actions/setup-node@v6
19+ with:
20+ node-version: '24'
21+ cache: 'npm'
22+ cache-dependency-path: 'webui/package-lock.json'
23+
24+ - name: Install dependencies
25+ run: npm ci
26+ working-directory: webui
27+
28+ - name: Run checks
29+ run: npm run check
30+ working-directory: webui
@@ -0,0 +1,30 @@
1+name: WebUI CI
2+
3+on:
4+ push:
5+ branches: [dev, main]
6+ paths:
7+ - 'webui/**'
8+ pull_request:
9+ paths:
10+ - 'webui/**'
11+
12+jobs:
13+ check:
14+ runs-on: ubuntu-latest
15+ steps:
16+ - uses: actions/checkout@v6
17+
18+ - uses: actions/setup-node@v6
19+ with:
20+ node-version: '24'
21+ cache: 'npm'
22+ cache-dependency-path: 'webui/package-lock.json'
23+
24+ - name: Install dependencies
25+ run: npm ci
26+ working-directory: webui
27+
28+ - name: Run checks
29+ run: npm run check
30+ working-directory: webui

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