@@ -140,26 +140,31 @@ if [[ $CLIENT_VERSION != *"snapshot"* ]]; then
140140 git pull -X theirs upstream master --no-edit
141141
142142 # Collect release notes from master branch
143- start_sha=$( git log ${remote_branch} ..upstream/master | grep ^commit | tail -n1 | sed ' s/commit //g' )
144- end_sha=$( git log ${remote_branch} ..upstream/master | grep ^commit | head -n1 | sed ' s/commit //g' )
145- output=" /tmp/python-master-relnote.md"
146- release-notes --dependencies=false --org kubernetes-client --repo python --start-sha $start_sha --end-sha $end_sha --output $output
147- sed -i ' s/(\[\#/(\[kubernetes-client\/python\#/g' $output
148-
149- IFS_backup=$IFS
150- IFS=$' \n '
151- sections=($( grep " ^### " $output ) )
152- IFS=$IFS_backup
153- for section in " ${sections[@]} " ; do
154- # ignore section titles and empty lines; replace newline with liternal "\n"
155- master_release_notes=$( sed -n " /$section /,/###/{/###/!p}" $output | sed -n " {/^$/!p}" | sed ' :a;N;$!ba;s/\n/\\n/g' )
156- util::changelog::write_changelog v$CLIENT_VERSION " $section " " $master_release_notes "
157- done
158- git add .
159- if ! git diff-index --quiet --cached HEAD; then
160- util::changelog::update_release_api_version $CLIENT_VERSION $CLIENT_VERSION $new_k8s_api_version
161- git add .
162- git commit -m " update changelog with release notes from master branch"
143+ if [[ $( git log ${remote_branch} ..upstream/master | grep ^commit) ]]; then
144+ start_sha=$( git log ${remote_branch} ..upstream/master | grep ^commit | tail -n1 | sed ' s/commit //g' )
145+ end_sha=$( git log ${remote_branch} ..upstream/master | grep ^commit | head -n1 | sed ' s/commit //g' )
146+ output=" /tmp/python-master-relnote-$( date +%s) .md"
147+ release-notes --dependencies=false --org kubernetes-client --repo python --start-sha $start_sha --end-sha $end_sha --output $output
148+ # Collect release notes from the output if non-empty
149+ if [ -s $output ]; then
150+ sed -i ' s/(\[\#/(\[kubernetes-client\/python\#/g' $output
151+
152+ IFS_backup=$IFS
153+ IFS=$' \n '
154+ sections=($( grep " ^### " $output ) )
155+ IFS=$IFS_backup
156+ for section in " ${sections[@]} " ; do
157+ # ignore section titles and empty lines; replace newline with liternal "\n"
158+ master_release_notes=$( sed -n " /$section /,/###/{/###/!p}" $output | sed -n " {/^$/!p}" | sed ' :a;N;$!ba;s/\n/\\n/g' )
159+ util::changelog::write_changelog v$CLIENT_VERSION " $section " " $master_release_notes "
160+ done
161+ git add . # Allows us to check if there are any staged release note changes
162+ if ! git diff-index --quiet --cached HEAD; then
163+ util::changelog::update_release_api_version $CLIENT_VERSION $CLIENT_VERSION $new_k8s_api_version
164+ git add . # Include the API version update before we commit
165+ git commit -m " update changelog with release notes from master branch"
166+ fi
167+ fi
163168 fi
164169fi
165170
0 commit comments