Skip to content

Commit 9eb797e

Browse files
authored
chore(scripts): add safety check for difference between dry run release notes (coder#13398)
1 parent 5fb2317 commit 9eb797e

File tree

1 file changed

+41
-18
lines changed

1 file changed

+41
-18
lines changed

scripts/release.sh

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -221,8 +221,9 @@ release_notes="$(execrelative ./release/generate_release_notes.sh --old-version
221221

222222
mkdir -p build
223223
release_notes_file="build/RELEASE-${new_version}.md"
224+
release_notes_file_dryrun="build/RELEASE-${new_version}-DRYRUN.md"
224225
if ((dry_run)); then
225-
release_notes_file="build/RELEASE-${new_version}-DRYRUN.md"
226+
release_notes_file=${release_notes_file_dryrun}
226227
fi
227228
get_editor() {
228229
if command -v editor >/dev/null; then
@@ -261,25 +262,47 @@ else
261262
fi
262263
log
263264

264-
if [[ -z ${editor} ]]; then
265-
log "No editor found, please set the \$EDITOR environment variable for edit prompt."
266-
else
267-
while [[ ! ${edit:-} =~ ^[YyNn]$ ]]; do
268-
read -p "Edit release notes in \"${editor}\"? (y/n) " -n 1 -r edit
269-
log
270-
done
271-
if [[ ${edit} =~ ^[Yy]$ ]]; then
272-
"${editor}" "${release_notes_file}"
273-
release_notes2="$(<"$release_notes_file")"
274-
if [[ "${release_notes}" != "${release_notes2}" ]]; then
275-
log "Release notes have been updated!"
276-
release_notes="${release_notes2}"
277-
else
278-
log "No changes detected..."
265+
edit_release_notes() {
266+
if [[ -z ${editor} ]]; then
267+
log "No editor found, please set the \$EDITOR environment variable for edit prompt."
268+
else
269+
while [[ ! ${edit:-} =~ ^[YyNn]$ ]]; do
270+
read -p "Edit release notes in \"${editor}\"? (y/n) " -n 1 -r edit
271+
log
272+
done
273+
if [[ ${edit} =~ ^[Yy]$ ]]; then
274+
"${editor}" "${release_notes_file}"
275+
release_notes2="$(<"$release_notes_file")"
276+
if [[ "${release_notes}" != "${release_notes2}" ]]; then
277+
log "Release notes have been updated!"
278+
release_notes="${release_notes2}"
279+
else
280+
log "No changes detected..."
281+
fi
279282
fi
280283
fi
281-
fi
282-
log
284+
log
285+
286+
if ((!dry_run)) && [[ -f ${release_notes_file_dryrun} ]]; then
287+
release_notes_dryrun="$(<"${release_notes_file_dryrun}")"
288+
if [[ "${release_notes}" != "${release_notes_dryrun}" ]]; then
289+
log "WARNING: Release notes differ from dry-run version:"
290+
log
291+
diff -u "${release_notes_file_dryrun}" "${release_notes_file}" || true
292+
log
293+
continue_with_new_release_notes=
294+
while [[ ! ${continue_with_new_release_notes:-} =~ ^[YyNn]$ ]]; do
295+
read -p "Continue with the new release notes anyway? (y/n) " -n 1 -r continue_with_new_release_notes
296+
log
297+
done
298+
if [[ ${continue_with_new_release_notes} =~ ^[Nn]$ ]]; then
299+
log
300+
edit_release_notes
301+
fi
302+
fi
303+
fi
304+
}
305+
edit_release_notes
283306

284307
while [[ ! ${preview:-} =~ ^[YyNn]$ ]]; do
285308
read -p "Preview release notes? (y/n) " -n 1 -r preview

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy