[release/7.x] Generate release notes (test: true) #61
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: 'Generate release notes' | |
run-name: '[${{ github.ref_name }}] Generate release notes (test: ${{ inputs.test_run }})' | |
on: | |
workflow_dispatch: | |
inputs: | |
test_run: | |
description: 'Test run?' | |
required: true | |
type: boolean | |
permissions: {} | |
jobs: | |
generate-release-notes: | |
name: 'Generate release notes' | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
pull-requests: write | |
steps: | |
- name: Checkout release branch | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac | |
with: | |
persist-credentials: false | |
fetch-depth: 0 # Fetch the entire repo for the below git commit graph operations | |
- name: Calculate release information | |
run: | | |
git fetch --tags | |
# Grab the latest tag from the current branch. If it doesn't exist, grab the latest tag across all branches. | |
last_release_tag=$(git describe --tags --abbrev=0 || git describe --tags $(git rev-list --tags --max-count=1)) | |
echo "Using tag: $last_release_tag" | |
last_release_date=$(git log -1 --format=%aI "$last_release_tag") | |
echo "last_release_date=$last_release_date" >> $GITHUB_ENV | |
versionFile="./eng/Versions.props" | |
release_version=$(perl -ne '/<VersionPrefix>([^<]*)/ && print $1' $versionFile) | |
release_version_label=$(perl -ne '/<PreReleaseVersionLabel>([^<]*)/ && print $1' $versionFile) | |
major_minor_version=${release_version%.*} | |
if [[ "$TEST_RUN" == "true" ]]; then | |
qualified_release_version="test-$release_version" | |
else | |
version_url="https://aka.ms/dotnet/diagnostics/monitor${major_minor_version}/release/dotnet-monitor.version" | |
qualified_release_version=$(curl -sL $version_url) | |
# Check if the aka.ms url existed | |
if [[ "$qualified_release_version" =~ "<html" || -z "$qualified_release_version" ]]; then | |
echo "Could not determine qualified release version, $version_url did not contain the expected information" | |
exit 1 | |
fi | |
# trim the return carriage | |
qualified_release_version=$(echo $qualified_release_version | tr -d '\r') | |
fi | |
friendly_release_name="" | |
if [ "$release_version_label" == "rtm" ] || [ "$release_version_label" == "servicing" ]; then | |
friendly_release_name="$release_version build" | |
elif [ "$release_version_label" == "rc" ]; then | |
friendly_release_name="official $release_version Release Candidate" | |
else | |
friendly_release_name="next official preview version" | |
fi | |
release_note_path="./documentation/releaseNotes/releaseNotes.v${qualified_release_version}.md" | |
echo "release_note_path=$release_note_path" >> $GITHUB_ENV | |
echo "friendly_release_name=$friendly_release_name" >> $GITHUB_ENV | |
echo "qualified_release_version=$qualified_release_version" >> $GITHUB_ENV | |
env: | |
TEST_RUN: ${{ inputs.test_run }} | |
- name: Checkout main | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac | |
with: | |
persist-credentials: true # We need to persist credentials to push the resulting changes upstream. | |
ref: main | |
- name: Generate release notes | |
uses: ./.github/actions/generate-release-notes | |
with: | |
output: ${{ env.release_note_path }} | |
last_release_date: ${{ env.last_release_date }} | |
build_description: ${{ env.friendly_release_name }} | |
auth_token: ${{ secrets.GITHUB_TOKEN }} | |
branch_name: ${{ github.ref_name }} | |
- name: Open PR (test run) | |
if: ${{ inputs.test_run }} | |
uses: ./.github/actions/open-pr | |
with: | |
draft: true | |
files_to_commit: ${{ env.release_note_path }} | |
title: "[test] Add ${{ env.qualified_release_version }} release notes" | |
commit_message: generate release notes | |
body: This is a test PR. Add ${{ env.qualified_release_version }} release notes. This PR was auto generated and will not be automatically merged in. | |
branch_name: releaseNotes/test/${{ env.qualified_release_version }} | |
fail_if_files_unchanged: true | |
auth_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Open PR | |
if: ${{ !inputs.test_run }} | |
uses: ./.github/actions/open-pr | |
with: | |
files_to_commit: ${{ env.release_note_path }} | |
title: "Add ${{ env.qualified_release_version }} release notes" | |
commit_message: generate release notes | |
body: Add ${{ env.qualified_release_version }} release notes. This PR was auto generated and will not be automatically merged in. | |
branch_name: releaseNotes/${{ env.qualified_release_version }} | |
fail_if_files_unchanged: true | |
auth_token: ${{ secrets.GITHUB_TOKEN }} |