[release/8.0] Update version to 8.0.9 rtm #80
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 'Update release version' | |
run-name: '[${{ github.ref_name }}] Update version to ${{ inputs.release_version }} ${{ inputs.release_type }}' | |
on: | |
workflow_dispatch: | |
inputs: | |
release_type: | |
description: 'Release type' | |
required: true | |
default: 'preview' | |
type: choice | |
options: | |
- rtm | |
- rc | |
- preview | |
- alpha | |
release_version: | |
description: 'Release version' | |
required: true | |
type: string | |
permissions: {} | |
jobs: | |
update-release-version: | |
name: 'Update release version' | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
pull-requests: write | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
with: | |
persist-credentials: true # We need to persist credentials to push the resulting changes upstream. | |
- name: Update release information | |
run: | | |
# note: \d is not valid in POSIX regex | |
if [[ ! "$release_version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | |
echo "Unexpected release version, valid format is major.minor.patch without any extra labels." | |
exit 1 | |
fi | |
versionFile="./eng/Versions.props" | |
current_release_version=$(perl -ne '/<VersionPrefix>([^<]*)/ && print $1' $versionFile) | |
current_release_version_type=$(perl -ne '/<PreReleaseVersionLabel>([^<]*)/ && print $1' $versionFile) | |
current_prerelease_version_iteration=$(perl -ne '/<PreReleaseVersionIteration>([^<]*)/ && print $1' $versionFile) | |
declare -i current_prerelease_version_iteration | |
new_release_type="$release_type" | |
new_release_version="$release_version" | |
new_build_quality="daily" | |
new_prerelease_iteration=0 | |
declare -i new_prerelease_iteration | |
current_branch_name=$(git symbolic-ref --short HEAD) | |
if [[ "$current_branch_name" =~ ^release\/* ]]; then | |
new_build_quality="release" | |
fi | |
if [ "$release_type" == "rtm" ]; then | |
if [[ "$release_version" != *\.0 ]]; then | |
new_release_type="servicing" | |
fi | |
else | |
if [[ ! -z $current_prerelease_version_iteration ]] && [ "$release_type" == "$current_release_version_type" ] && [ "$release_version" == "$current_release_version" ]; then | |
new_prerelease_iteration=$current_prerelease_version_iteration+1 | |
else | |
new_prerelease_iteration=1 | |
fi | |
fi | |
# Apply the new version information | |
sed -i "s/<VersionPrefix>.*/<VersionPrefix>${new_release_version}<\/VersionPrefix>/" $versionFile | |
sed -i "s/<PreReleaseVersionLabel>.*/<PreReleaseVersionLabel>${new_release_type}<\/PreReleaseVersionLabel>/" $versionFile | |
sed -i "/<PreReleaseVersionIteration>/d" $versionFile | |
if [ $new_prerelease_iteration != 0 ]; then | |
sed -i "/<PreReleaseVersionLabel>.*/a\ \ \ \ <PreReleaseVersionIteration>${new_prerelease_iteration}<\/PreReleaseVersionIteration>" $versionFile | |
fi | |
sed -i "s/<BlobGroupBuildQuality>.*/<BlobGroupBuildQuality>${new_build_quality}<\/BlobGroupBuildQuality>/" $versionFile | |
sed -i "/<DotnetFinalVersionKind>/d" $versionFile | |
# rtm on the release_type input covered both rtm and servicing | |
if [ "$release_type" == "rtm" ]; then | |
sed -i "/<PreReleaseVersionLabel>.*/a\ \ \ \ <DotnetFinalVersionKind>release<\/DotnetFinalVersionKind>" $versionFile | |
fi | |
echo "release_version_file=$versionFile" >> $GITHUB_ENV | |
env: | |
release_type: ${{ inputs.release_type }} | |
release_version: ${{ inputs.release_version }} | |
- name: Open PR | |
uses: ./.github/actions/open-pr | |
with: | |
files_to_commit: ${{ env.release_version_file }} | |
title: '[${{ github.ref_name }}] Update release version' | |
commit_message: update release information | |
body: Update release version for ${{ inputs.release_type }} ${{ inputs.release_version }}. This PR was auto generated and will not be automatically merged in. | |
branch_name: releaseVersion/${{ inputs.release_type }}-${{ inputs.release_version }} | |
fail_if_files_unchanged: false | |
auth_token: ${{ secrets.GITHUB_TOKEN }} |