detached ea9bcf1

ci: run the tests on the arch runner with git 2.45 or newer

commit
ea9bcf1dbea0952a32ec790d8b59c8f436e4cef6
author
brice · · 2026-10-10 22:26 UTC
parent
df84e16
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
2 files · +17 -1
M .forgejo/workflows/ci.yml +15 -1
@@ -26,13 +26,27 @@ jobs:
2626
2727 test:
2828 name: Test
29- runs-on: ubuntu-latest
29+ # The conformance tests compare with git >= 2.45 (git 2.39 of ubuntu-latest
30+ # peels nested tags and writes Bloom filters differently). The arch label runs
31+ # archlinux:latest as root, with a current git.
32+ runs-on: arch
3033 steps:
34+ - name: System packages
35+ run: pacman -Syu --noconfirm --needed git gcc
3136 - uses: actions/checkout@v6
3237 - uses: actions/setup-go@v5
3338 with:
3439 go-version-file: go.mod
3540 cache: true
41+ - name: Git is at least 2.45
42+ run: |
43+ git --version
44+ v=$(git --version | sed -E 's/^git version ([0-9]+)\.([0-9]+).*/\1 \2/')
45+ set -- $v
46+ if [ "$1" -lt 2 ] || { [ "$1" -eq 2 ] && [ "$2" -lt 45 ]; }; then
47+ echo "git 2.45 or newer is required" >&2
48+ exit 1
49+ fi
3650 - name: Verify tidy
3751 run: |
3852 go mod tidy
@@ -26,13 +26,27 @@ jobs:
26 26
27 test:27 test:
28 name: Test28 name: Test
29- runs-on: ubuntu-latest29+ # The conformance tests compare with git >= 2.45 (git 2.39 of ubuntu-latest
30+ # peels nested tags and writes Bloom filters differently). The arch label runs
31+ # archlinux:latest as root, with a current git.
32+ runs-on: arch
30 steps:33 steps:
34+ - name: System packages
35+ run: pacman -Syu --noconfirm --needed git gcc
31 - uses: actions/checkout@v636 - uses: actions/checkout@v6
32 - uses: actions/setup-go@v537 - uses: actions/setup-go@v5
33 with:38 with:
34 go-version-file: go.mod39 go-version-file: go.mod
35 cache: true40 cache: true
41+ - name: Git is at least 2.45
42+ run: |
43+ git --version
44+ v=$(git --version | sed -E 's/^git version ([0-9]+)\.([0-9]+).*/\1 \2/')
45+ set -- $v
46+ if [ "$1" -lt 2 ] || { [ "$1" -eq 2 ] && [ "$2" -lt 45 ]; }; then
47+ echo "git 2.45 or newer is required" >&2
48+ exit 1
49+ fi
36 - name: Verify tidy50 - name: Verify tidy
37 run: |51 run: |
38 go mod tidy52 go mod tidy
M README.md +2 -0
@@ -49,6 +49,8 @@ Repositories the package does not read are rejected by `Open` with `ErrUnsupport
4949
5050 ## Test
5151
52+The conformance tests compare with the `git` binary, 2.45 or newer (they are skipped without git).
53+
5254 ```sh
5355 go test -race ./...
5456 # also compare every object of a real repository with `git cat-file`:
@@ -49,6 +49,8 @@ Repositories the package does not read are rejected by `Open` with `ErrUnsupport
49 49
50 ## Test50 ## Test
51 51
52+The conformance tests compare with the `git` binary, 2.45 or newer (they are skipped without git).
53+
52 ```sh54 ```sh
53 go test -race ./...55 go test -race ./...
54 # also compare every object of a real repository with `git cat-file`:56 # also compare every object of a real repository with `git cat-file`:

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 1

Tags 2

↑↓ moveenter openesc close