From cde02dad0ce91eb8511ae26a35debd2d99a21ead Mon Sep 17 00:00:00 2001 From: kt Date: Thu, 26 Dec 2024 09:52:43 -0800 Subject: [PATCH] provider: update changelog via seperate script and update release script to just push tag (#28131) * provider: update changelog via tag workflow instead of release script * address pr comments and remove commit from changelog script * remove workflow for now * rename file --- .github/workflows/release.yaml | 2 +- ...ease-update-changelog-and-export-schema.sh | 42 +++++++++++++++++++ scripts/release.sh | 32 -------------- 3 files changed, 43 insertions(+), 33 deletions(-) create mode 100755 scripts/release-update-changelog-and-export-schema.sh diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index f7c2228e7bb8..97482fdebb9b 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -18,6 +18,7 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - id: go-version run: echo "version=$(cat ./.go-version)" >>${GITHUB_OUTPUT} + release-notes: runs-on: custom-linux-xl steps: @@ -36,7 +37,6 @@ jobs: name: 'Terraform Provider Release' needs: [go-version, release-notes] uses: hashicorp/ghaction-terraform-provider-release/.github/workflows/hashicorp.yml@393dac4dd208c749b1622323f9f0e8d26a6f26cc # v4.0.1 - secrets: hc-releases-github-token: '${{ secrets.HASHI_RELEASES_GITHUB_TOKEN }}' hc-releases-host-staging: '${{ secrets.HC_RELEASES_HOST_STAGING }}' diff --git a/scripts/release-update-changelog-and-export-schema.sh b/scripts/release-update-changelog-and-export-schema.sh new file mode 100755 index 000000000000..a43177341edd --- /dev/null +++ b/scripts/release-update-changelog-and-export-schema.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 + +if [[ "$(uname)" == "Darwin" ]]; then + echo "(Using BSD sed)" + SED="sed -E" +else + echo "(Using GNU sed)" + SED="sed -r" +fi + +DATE="$(date '+%B %d, %Y')" +PROVIDER_URL="https:\/\/github.com\/hashicorp\/terraform-provider-azurerm\/issues" + +echo "Preparing changelog for release..." + +if [[ ! -f CHANGELOG.md ]]; then + echo "Error: CHANGELOG.md not found." + exit 2 +fi + +# Get the next release +RELEASE="$($SED -n 's/^## v?([0-9.]+) \(Unreleased\)/\1/p' CHANGELOG.md)" +if [[ "${RELEASE}" == "" ]]; then + echo "Error: could not determine next release in CHANGELOG.md" >&2 + exit 3 +fi + +# Replace [GH-nnnn] references with issue links +( set -x; ${debug}$SED -i.bak "s/\[GH-([0-9]+)\]/\(\[#\1\]\(${PROVIDER_URL}\/\1\)\)/g" CHANGELOG.md ) + +# Set the date for the latest release +( set -x; ${debug}$SED -i.bak "s/^(## v?[0-9.]+) \(Unreleased\)/\1 (${DATE})/i" CHANGELOG.md ) + +${debug}rm CHANGELOG.md.bak + +echo "exporting Provider Schema JSON" +( + set -x + ${debug}go run internal/tools/schema-api/main.go -export .release/provider-schema.json +) \ No newline at end of file diff --git a/scripts/release.sh b/scripts/release.sh index ecfb9e5c851f..35ea2f149d5a 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -60,9 +60,6 @@ else SED="sed -r" fi -DATE="$(date '+%B %d, %Y')" -PROVIDER_URL="https:\/\/github.com\/hashicorp\/terraform-provider-azurerm\/issues" - BRANCH="$(git rev-parse --abbrev-ref HEAD)" if [[ "${BRANCH}" != "${TRUNK}" ]]; then if [[ "${FORCE}" == "1" ]]; then @@ -87,13 +84,6 @@ else ( set -x; TF_ACC= scripts/run-test.sh ) fi -echo "Preparing changelog for release..." - -if [[ ! -f CHANGELOG.md ]]; then - echo "Error: CHANGELOG.md not found." - exit 2 -fi - # Get the next release RELEASE="$($SED -n 's/^## v?([0-9.]+) \(Unreleased\)/\1/p' CHANGELOG.md)" if [[ "${RELEASE}" == "" ]]; then @@ -104,33 +94,11 @@ fi # Ensure latest changes are checked out ( set -x; ${debug}git pull --rebase origin "${TRUNK}" ) -# Replace [GH-nnnn] references with issue links -( set -x; ${debug}$SED -i.bak "s/\[GH-([0-9]+)\]/\(\[#\1\]\(${PROVIDER_URL}\/\1\)\)/g" CHANGELOG.md ) - -# Set the date for the latest release -( set -x; ${debug}$SED -i.bak "s/^(## v?[0-9.]+) \(Unreleased\)/\1 (${DATE})/i" CHANGELOG.md ) - -${debug}rm CHANGELOG.md.bak - if [[ "${NOTAG}" == "1" ]]; then echo "Warning: Skipping commit, tag and push." exit 0 fi -echo "exporting Provider Schema JSON" -( - set -x - ${debug}go run internal/tools/schema-api/main.go -export .release/provider-schema.json -) - -echo "Committing changelog and provider schema..." -( - set -x - ${debug}git commit CHANGELOG.md .release/provider-schema.json -m v"${RELEASE}" - ${debug}git push origin "${BRANCH}" -) - - echo "Releasing v${RELEASE}..." (