Skip to content

Commit 9eb797e

Browse files
authored
chore(scripts): add safety check for difference between dry run release notes (#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

+41-18
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)