v0.50.0 c4ec31f

next-release-tag_test.sh RawHistoryFolder

1#!/usr/bin/env bash
2set -euo pipefail
3
4repo_root=$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)
5script="$repo_root/.github/scripts/next-release-tag.sh"
6tmp=$(mktemp -d)
7trap 'rm -rf "$tmp"' EXIT
8
9cd "$tmp"
10git init --quiet
11git config user.name 'Release Test'
12git config user.email 'release-test@example.invalid'
13
14git commit --allow-empty --quiet -m 'feat: first release'
15expect() {
16	local want=$1
17	local got
18	got=$($script)
19	if [ "$got" != "$want" ]; then
20		printf 'next-release-tag = %q, want %q\n' "$got" "$want" >&2
21		exit 1
22	fi
23}
24
25expect 'v0.1.0'
26git tag -a v0.1.0 -m 'release v0.1.0'
27
28# A rerun after tag creation must release the existing tag, not skip it.
29expect 'v0.1.0'
30
31git commit --allow-empty --quiet -m 'docs: explain releases'
32expect ''
33
34git commit --allow-empty --quiet -m 'fix: repair installer'
35expect 'v0.1.1'
36git tag -a v0.1.1 -m 'release v0.1.1'
37
38git commit --allow-empty --quiet -m 'refactor!: replace extension handshake'
39expect 'v0.2.0'
40
41# GoReleaser passes tag_sort directly to `git tag --sort`, so keep the
42# configured semantic-version sort valid before a release run depends on it.
43tag_sort=$(sed -n 's/^[[:space:]]*tag_sort:[[:space:]]*//p' "$repo_root/.goreleaser.yaml")
44if [ "$tag_sort" != '-version:refname' ]; then
45	printf 'goreleaser tag_sort = %q, want %q\n' "$tag_sort" '-version:refname' >&2
46	exit 1
47fi
48git tag --sort "$tag_sort" --list 'v*.*.*' >/dev/null

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 476

↑↓ moveenter openesc close