mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-08-02 11:31:52 +08:00
Automate per-package release for specific components (#2875)
This commit is contained in:
50
scripts/merge_changelog_to_main.sh
Executable file
50
scripts/merge_changelog_to_main.sh
Executable file
@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script copies release notes for the current version from CHANGELOG.md file
|
||||
# and stores them in a temporary file for later use in the release workflow
|
||||
|
||||
# This script is called from the release workflows (package-release.yml and release.yml).
|
||||
|
||||
set -ev
|
||||
|
||||
if [[ -z $PRIOR_VERSION_WHEN_PATCH ]]; then
|
||||
# this was not a patch release, so the version exists already in the CHANGELOG.md
|
||||
|
||||
# update the release date
|
||||
date=$(gh release view $RELEASE_TAG --json publishedAt --jq .publishedAt | sed 's/T.*//')
|
||||
sed -Ei "s/## Version ${VERSION}.*/## Version ${VERSION} ($date)/" ${CHANGELOG}
|
||||
|
||||
# the entries are copied over from the release branch to support workflows
|
||||
# where change log entries may be updated after preparing the release branch
|
||||
|
||||
# copy the portion above the release, up to and including the heading
|
||||
sed -n "0,/^## Version ${VERSION} ($date)/p" ${CHANGELOG} > /tmp/CHANGELOG.md
|
||||
|
||||
# copy the release notes
|
||||
cat /tmp/CHANGELOG_SECTION.md >> /tmp/CHANGELOG.md
|
||||
|
||||
# copy the portion below the release
|
||||
sed -n "0,/^## Version ${VERSION} /d;0,/^## Version /{/^## Version/!d};p" ${CHANGELOG} \
|
||||
>> /tmp/CHANGELOG.md
|
||||
|
||||
# update the real CHANGELOG.md
|
||||
cp /tmp/CHANGELOG.md ${CHANGELOG}
|
||||
else
|
||||
# this was a patch release, so the version does not exist already in the CHANGELOG.md
|
||||
|
||||
# copy the portion above the top-most release, not including the heading
|
||||
sed -n "0,/^## Version /{ /^## Version /!p }" ${CHANGELOG} > /tmp/CHANGELOG.md
|
||||
|
||||
# add the heading
|
||||
date=$(gh release view $RELEASE_TAG --json publishedAt --jq .publishedAt | sed 's/T.*//')
|
||||
echo "## Version ${VERSION} ($date)" >> /tmp/CHANGELOG.md
|
||||
|
||||
# copy the release notes
|
||||
cat /tmp/CHANGELOG_SECTION.md >> /tmp/CHANGELOG.md
|
||||
|
||||
# copy the portion starting from the top-most release
|
||||
sed -n "/^## Version /,\$p" ${CHANGELOG} >> /tmp/CHANGELOG.md
|
||||
|
||||
# update the real CHANGELOG.md
|
||||
cp /tmp/CHANGELOG.md ${CHANGELOG}
|
||||
fi
|
Reference in New Issue
Block a user