v0.20.0 c741a39

release.yml RawHistoryFolder

1name: Release
2
3on:
4  push:
5    tags:
6      - 'v*'
7
8permissions:
9  contents: write
10
11jobs:
12  check-changes:
13    runs-on: ubuntu-latest
14    outputs:
15      should_release: ${{ steps.check.outputs.should_release }}
16    steps:
17      - uses: actions/checkout@v6
18        with:
19          fetch-depth: 0
20      - name: Check for release-worthy changes
21        id: check
22        run: |
23          # Get previous tag
24          PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
25          if [ -z "$PREV_TAG" ]; then
26            echo "should_release=true" >> $GITHUB_OUTPUT
27            exit 0
28          fi
29          # Check if any non-doc files changed
30          CHANGES=$(git diff --name-only $PREV_TAG HEAD | grep -v -E '(\.md$|^docs/|^\.github/workflows/|^LICENSE$)' || true)
31          if [ -n "$CHANGES" ]; then
32            echo "should_release=true" >> $GITHUB_OUTPUT
33          else
34            echo "should_release=false" >> $GITHUB_OUTPUT
35            echo "Only docs/CI changes detected, skipping release"
36          fi
37
38  lint:
39    needs: check-changes
40    if: needs.check-changes.outputs.should_release == 'true'
41    runs-on: ubuntu-latest
42    steps:
43      - uses: actions/checkout@v6
44      - uses: actions/setup-go@v6
45        with:
46          go-version: stable
47      - uses: actions/setup-node@v6
48        with:
49          node-version: '24'
50      - name: Install WebKitGTK 6.0 dependencies
51        run: |
52          sudo apt-get update
53          sudo apt-get install -y libwebkitgtk-6.0-dev libgtk-4-dev
54      - name: Build frontend assets
55        run: make build-frontend
56      - name: Run golangci-lint
57        uses: golangci/golangci-lint-action@v7
58        with:
59          version: v2.6.2
60
61  test:
62    needs: check-changes
63    if: needs.check-changes.outputs.should_release == 'true'
64    runs-on: ubuntu-latest
65    steps:
66      - uses: actions/checkout@v6
67      - uses: actions/setup-go@v6
68        with:
69          go-version: stable
70      - uses: actions/setup-node@v6
71        with:
72          node-version: '24'
73      - name: Install WebKitGTK 6.0 dependencies
74        run: |
75          sudo apt-get update
76          sudo apt-get install -y libwebkitgtk-6.0-dev libgtk-4-dev
77      - name: Build frontend assets
78        run: make build-frontend
79      - name: Run tests
80        run: CGO_ENABLED=1 go test -tags=webkit_cgo -v ./...
81
82  release:
83    needs: [check-changes, lint, test]
84    if: needs.check-changes.outputs.should_release == 'true'
85    runs-on: ubuntu-latest
86    steps:
87      - uses: actions/checkout@v6
88        with:
89          fetch-depth: 0
90      - uses: actions/setup-go@v6
91        with:
92          go-version: stable
93      - name: Install WebKitGTK 6.0 dependencies
94        run: |
95          sudo apt-get update
96          sudo apt-get install -y libwebkitgtk-6.0-dev libgtk-4-dev
97      - uses: actions/setup-node@v6
98        with:
99          node-version: '24'
100      - name: Run GoReleaser
101        uses: goreleaser/goreleaser-action@v6
102        with:
103          distribution: goreleaser
104          version: "~> v2"
105          args: release --clean
106        env:
107          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

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