|
7 | 7 | semver = "${pkgs.semver-tool}/bin/semver"; |
8 | 8 |
|
9 | 9 | preamble = '' |
10 | | - setopt no_unset pipefail |
| 10 | + setopt no_unset |
11 | 11 | ${util.loadConsole} |
12 | 12 |
|
13 | 13 | reset() |
14 | 14 | { |
15 | 15 | if [[ -n $need_reset ]] |
16 | 16 | then |
17 | | - ${git} reset --hard |
| 17 | + ${git} reset --quiet --hard |
18 | 18 | if [[ -n $stashed ]] |
19 | 19 | then |
20 | 20 | ${git} stash pop --quiet --index |
|
29 | 29 | die ''${1:-Aborting.} |
30 | 30 | } |
31 | 31 |
|
| 32 | + trap abort INT |
| 33 | + trap abort TERM |
| 34 | +
|
32 | 35 | ask_abort() |
33 | 36 | { |
34 | 37 | if ! ask $1 |
35 | 38 | then |
36 | | - abort |
| 39 | + abort ''${2-} |
37 | 40 | fi |
38 | 41 | } |
39 | 42 |
|
|
88 | 91 | then |
89 | 92 | if ! ${git} diff --quiet |
90 | 93 | then |
91 | | - ${git} stash push --include-untracked |
| 94 | + ${git} stash push --quiet --include-untracked |
92 | 95 | stashed=1 |
93 | 96 | fi |
94 | 97 | else |
95 | 98 | if ! ${git} diff --quiet |
96 | 99 | then |
97 | | - die 'Worktree is dirty' |
| 100 | + abort 'Worktree is dirty.' |
98 | 101 | fi |
99 | 102 | fi |
100 | 103 | need_reset=1 |
|
103 | 106 | updateVersions = '' |
104 | 107 | if ask 'Run tests?' |
105 | 108 | 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 |
108 | 121 | fi |
109 | 122 | sed -i 's/ref=[^"#]\+/ref='"$version/" readme.md examples/*/flake.nix |
110 | 123 | sed -Ei 's/~[[:digit:]]+\.[[:digit:]]+\.tar/~'"''${version%.*}.tar/" readme.md |
|
118 | 131 | commitAndTag = '' |
119 | 132 | if dry_run |
120 | 133 | then |
121 | | - message 'Dry run, skipping commit.' |
122 | | - abort |
| 134 | + abort 'Dry run, skipping commit.' |
123 | 135 | fi |
124 | 136 | ask_abort 'Ready to commit. Continue?' |
125 | 137 | ${git} commit --allow-empty -m "Release $version" |
|
143 | 155 | then |
144 | 156 | message 'Tests succeeded, adding updated test flakes.' |
145 | 157 | else |
146 | | - die 'Tests failed, aborting.' |
| 158 | + abort 'Tests failed.' |
147 | 159 | fi |
148 | 160 | ${git} add $dev_cli_test_flakes |
149 | 161 | else |
|
152 | 164 | fi |
153 | 165 | ''; |
154 | 166 |
|
155 | | - nix = util.zscript "hix-release-nix" '' |
| 167 | + nix = util.zscriptErr "hix-release-nix" '' |
156 | 168 | ${preamble} |
157 | 169 | ${updateVersions} |
158 | 170 | ${checkDevCliTests} |
159 | 171 | ${commitAndTag} |
160 | 172 | ''; |
161 | 173 |
|
162 | | - all = util.zscript "hix-release-all" '' |
| 174 | + all = util.zscriptErr "hix-release-all" '' |
163 | 175 | ${preamble} |
164 | 176 | ${updateVersions} |
165 | 177 |
|
166 | 178 | if dry_run |
167 | 179 | then |
168 | 180 | message 'Dry run, skipping CLI release.' |
169 | 181 | else |
170 | | - nix run .#release -- -v $version |
| 182 | + if ! nix run .#release -- -v $version |
| 183 | + then |
| 184 | + abort 'CLI release failed.' |
| 185 | + fi |
171 | 186 | fi |
172 | 187 | ${checkDevCliTests} |
173 | 188 | ${commitAndTag} |
|
0 commit comments