chore(scripts): fix stable release promote script (#13204)

This commit is contained in:
Mathias Fredriksson
2024-05-17 11:25:10 +03:00
committed by GitHub
parent 0998cedb5c
commit f66d0445da
4 changed files with 34 additions and 16 deletions
+14 -10
View File
@@ -134,18 +134,22 @@ requiredenvs() {
}
gh_auth() {
local fail=0
if [[ "${CODER:-}" == "true" ]]; then
if ! output=$(coder external-auth access-token github 2>&1); then
log "ERROR: Could not authenticate with GitHub."
log "$output"
fail=1
if [[ -z ${GITHUB_TOKEN:-} ]]; then
if [[ -n ${GH_TOKEN:-} ]]; then
export GITHUB_TOKEN=${GH_TOKEN}
elif [[ ${CODER:-} == true ]]; then
if ! output=$(coder external-auth access-token github 2>&1); then
# TODO(mafredri): We could allow checking `gh auth token` here.
log "${output}"
error "Could not authenticate with GitHub using Coder external auth."
else
export GITHUB_TOKEN=${output}
fi
elif token="$(gh auth token --hostname github.com 2>/dev/null)"; then
export GITHUB_TOKEN=${token}
else
GITHUB_TOKEN=$(coder external-auth access-token github)
export GITHUB_TOKEN
error "GitHub authentication is required to run this command, please set GITHUB_TOKEN or run 'gh auth login'."
fi
else
log "Please authenticate gh CLI by running 'gh auth login'"
fi
}
+7 -3
View File
@@ -62,9 +62,9 @@ func main() {
Value: serpent.BoolOf(&r.debug),
},
{
Flag: "gh-token",
Flag: "github-token",
Description: "GitHub personal access token.",
Env: "GH_TOKEN",
Env: "GITHUB_TOKEN",
Value: serpent.StringOf(&r.ghToken),
},
{
@@ -245,7 +245,7 @@ func (r *releaseCommand) promoteVersionToStable(ctx context.Context, inv *serpen
updatedNewStable.Prerelease = github.Bool(false)
updatedNewStable.Draft = github.Bool(false)
if !r.dryRun {
_, _, err = client.Repositories.EditRelease(ctx, owner, repo, newStable.GetID(), newStable)
_, _, err = client.Repositories.EditRelease(ctx, owner, repo, newStable.GetID(), updatedNewStable)
if err != nil {
return xerrors.Errorf("edit release failed: %w", err)
}
@@ -268,6 +268,10 @@ func cloneRelease(r *github.RepositoryRelease) *github.RepositoryRelease {
//
// > ## Stable (since April 23, 2024)
func addStableSince(date time.Time, body string) string {
// Protect against adding twice.
if strings.Contains(body, "> ## Stable (since") {
return body
}
return fmt.Sprintf("> ## Stable (since %s)\n\n", date.Format("January 02, 2006")) + body
}
+10 -3
View File
@@ -131,12 +131,19 @@ func Test_addStableSince(t *testing.T) {
date := time.Date(2024, time.April, 23, 0, 0, 0, 0, time.UTC)
body := "## Changelog"
expected := "> ## Stable (since April 23, 2024)\n\n## Changelog"
result := addStableSince(date, body)
want := "> ## Stable (since April 23, 2024)\n\n## Changelog"
got := addStableSince(date, body)
if diff := cmp.Diff(expected, result); diff != "" {
if diff := cmp.Diff(want, got); diff != "" {
require.Fail(t, "addStableSince() mismatch (-want +got):\n%s", diff)
}
// Test that it doesn't add twice.
got = addStableSince(date, got)
if diff := cmp.Diff(want, got); diff != "" {
require.Fail(t, "addStableSince() mismatch (-want +got):\n%s", diff, "addStableSince() should not add twice")
}
}
func Test_release_autoversion(t *testing.T) {
+3
View File
@@ -4,6 +4,9 @@ set -euo pipefail
# shellcheck source=scripts/lib.sh
source "$(dirname "${BASH_SOURCE[0]}")/lib.sh"
# Make sure GITHUB_TOKEN is set for the release command.
gh_auth
# This script is a convenience wrapper around the release promote command.
#
# Sed hack to make help text look like this script.