Skip to content

[release/8.x] Update version to 8.1.1 rtm #81

[release/8.x] Update version to 8.1.1 rtm

[release/8.x] Update version to 8.1.1 rtm #81

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 }}