Skip to content

Commit a3fc7e1

Browse files
committed
tweak release script
1 parent 356743d commit a3fc7e1

1 file changed

Lines changed: 28 additions & 13 deletions

File tree

lib/release.nix

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
semver = "${pkgs.semver-tool}/bin/semver";
88

99
preamble = ''
10-
setopt no_unset pipefail
10+
setopt no_unset
1111
${util.loadConsole}
1212
1313
reset()
1414
{
1515
if [[ -n $need_reset ]]
1616
then
17-
${git} reset --hard
17+
${git} reset --quiet --hard
1818
if [[ -n $stashed ]]
1919
then
2020
${git} stash pop --quiet --index
@@ -29,11 +29,14 @@
2929
die ''${1:-Aborting.}
3030
}
3131
32+
trap abort INT
33+
trap abort TERM
34+
3235
ask_abort()
3336
{
3437
if ! ask $1
3538
then
36-
abort
39+
abort ''${2-}
3740
fi
3841
}
3942
@@ -88,13 +91,13 @@
8891
then
8992
if ! ${git} diff --quiet
9093
then
91-
${git} stash push --include-untracked
94+
${git} stash push --quiet --include-untracked
9295
stashed=1
9396
fi
9497
else
9598
if ! ${git} diff --quiet
9699
then
97-
die 'Worktree is dirty'
100+
abort 'Worktree is dirty.'
98101
fi
99102
fi
100103
need_reset=1
@@ -103,8 +106,18 @@
103106
updateVersions = ''
104107
if ask 'Run tests?'
105108
then
106-
nix build .#docs
107-
nix run .#test
109+
if ! nix build .#docs
110+
then
111+
abort 'Docs failed.'
112+
fi
113+
if ! nix --quiet flake show --all-systems >/dev/null
114+
then
115+
abort 'Evaluation of outputs failed.'
116+
fi
117+
if ! nix run .#test
118+
then
119+
abort 'Tests failed.'
120+
fi
108121
fi
109122
sed -i 's/ref=[^"#]\+/ref='"$version/" readme.md examples/*/flake.nix
110123
sed -Ei 's/~[[:digit:]]+\.[[:digit:]]+\.tar/~'"''${version%.*}.tar/" readme.md
@@ -118,8 +131,7 @@
118131
commitAndTag = ''
119132
if dry_run
120133
then
121-
message 'Dry run, skipping commit.'
122-
abort
134+
abort 'Dry run, skipping commit.'
123135
fi
124136
ask_abort 'Ready to commit. Continue?'
125137
${git} commit --allow-empty -m "Release $version"
@@ -143,7 +155,7 @@
143155
then
144156
message 'Tests succeeded, adding updated test flakes.'
145157
else
146-
die 'Tests failed, aborting.'
158+
abort 'Tests failed.'
147159
fi
148160
${git} add $dev_cli_test_flakes
149161
else
@@ -152,22 +164,25 @@
152164
fi
153165
'';
154166

155-
nix = util.zscript "hix-release-nix" ''
167+
nix = util.zscriptErr "hix-release-nix" ''
156168
${preamble}
157169
${updateVersions}
158170
${checkDevCliTests}
159171
${commitAndTag}
160172
'';
161173

162-
all = util.zscript "hix-release-all" ''
174+
all = util.zscriptErr "hix-release-all" ''
163175
${preamble}
164176
${updateVersions}
165177
166178
if dry_run
167179
then
168180
message 'Dry run, skipping CLI release.'
169181
else
170-
nix run .#release -- -v $version
182+
if ! nix run .#release -- -v $version
183+
then
184+
abort 'CLI release failed.'
185+
fi
171186
fi
172187
${checkDevCliTests}
173188
${commitAndTag}

0 commit comments

Comments
 (0)