From b2a33c2cc652696d0c09067f6f18bf33fc0a7cf1 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Sat, 12 Nov 2022 11:53:54 -0800 Subject: [PATCH] 2022-11-12 11:53:54am --- ci/release/build.sh | 15 +++++++------- ci/release/release.sh | 47 ++++++++++++++++++++++++++----------------- ci/sub | 2 +- 3 files changed, 37 insertions(+), 27 deletions(-) diff --git a/ci/release/build.sh b/ci/release/build.sh index 5aea5df26..8da755f81 100755 --- a/ci/release/build.sh +++ b/ci/release/build.sh @@ -1,10 +1,9 @@ #!/bin/sh set -eu -. "$(dirname "$0")/../../ci/sub/lib.sh" -. "$(dirname "$0")/../../ci/sub/golib.sh" cd -- "$(dirname "$0")/../.." +. ./ci/sub/lib.sh -build() {( +build() { OS="$1" ARCH="$2" BUILD_DIR="$BUILD_DIR/$OS/$ARCH" @@ -17,17 +16,17 @@ build() {( export GOARCH="$ARCH" sh_c go build -ldflags "-X lib/version.Version=$VERSION" \ -o "$BUILD_DIR/bin/d2" ./cmd/d2 -)} +} main() { VERSION="$(git_describe_ref)" BUILD_DIR="ci/release/build/$VERSION" - runjob linux-amd64 'build linux amd64' & - runjob linux-arm64 'build linux arm64' & - runjob macos-amd64 'build macos amd64' & - runjob macos-arm64 'build macos arm64' & + runjob linux-amd64 'OS=linux ARCH=amd64 build linux amd64' & + runjob linux-arm64 'OS=linux ARCH=arm64 build linux arm64' & + runjob macos-amd64 'OS=macos ARCH=amd64 build macos amd64' & + runjob macos-arm64 'OS=macos ARCH=arm64 build macos arm64' & wait_jobs } diff --git a/ci/release/release.sh b/ci/release/release.sh index 99c18f85a..6e9a82835 100755 --- a/ci/release/release.sh +++ b/ci/release/release.sh @@ -102,15 +102,22 @@ main() { VERSION="$1" shift - runjob 1_ensure_branch _1_ensure_branch - runjob 2_ensure_changelog _2_ensure_changelog - runjob 3_ensure_commit _3_ensure_commit - runjob 4_push_branch _4_push_branch - runjob 5_ensure_tag _5_ensure_tag - runjob 6_ensure_release _6_ensure_release - runjob 7_ensure_pr _7_ensure_pr - runjob 8_ensure_assets _8_ensure_assets - runjob 9_upload_assets _9_upload_assets + header '1_ensure_branch' && _1_ensure_branch + header '2_ensure_changelog' && _2_ensure_changelog + header '3_ensure_commit' && _3_ensure_commit + header '4_push_branch' && _4_push_branch + header '5_ensure_tag' && _5_ensure_tag + header '6_ensure_release' && _6_ensure_release + header '7_ensure_pr' && _7_ensure_pr + header '8_ensure_assets' && _8_ensure_assets + header '9_upload_assets' && _9_upload_assets + + COLOR=2 header 'final steps' + cat </dev/null 2>&1; then - sh_c gh release edit \ + release_url="$(sh_c gh release edit \ --draft \ --notes-file "./ci/release/changelogs/$VERSION.md" \ ${PRERELEASE:+--prerelease} \ "--title=$VERSION" \ - "$VERSION" + "$VERSION" | tee /dev/stderr)" return 0 fi - sh_c gh release create \ + release_url="$(sh_c gh release create \ --draft \ --notes-file "./ci/release/changelogs/$VERSION.md" \ ${PRERELEASE:+--prerelease} \ "--title=$VERSION" \ - "$VERSION" + "$VERSION" | tee /dev/stderr)" } _7_ensure_pr() { - pr_url=$(gh pr view "$VERSION" --json=url '--template={{ .url }}' 2>/dev/null || true) + # We do not use gh pr view as that includes closed PRs. + pr_url="$(gh pr list --head "$VERSION" --json=url '--template={{ range . }}{{ .url }}{{end}}')" + body="Will be available at $(gh repo view --json=url '--template={{ .url }}')/releases/tag/$VERSION" if [ -n "$pr_url" ]; then - _echo "PR already exists: $pr_url" + sh_c gh pr edit --body "$body" "$VERSION" return 0 fi - sh_c gh pr create --draft --fill + + pr_url="$(sh_c gh pr create --fill --body "$body" | tee /dev/stderr)" } _8_ensure_assets() { # ./ci/release/build.sh ${REBUILD:+--rebuild} $VERSION - _echo TODO + log TODO } _9_upload_assets() { diff --git a/ci/sub b/ci/sub index a4961f772..3412fc4a9 160000 --- a/ci/sub +++ b/ci/sub @@ -1 +1 @@ -Subproject commit a4961f772d1f98bb7a8185a6590ed4346684e392 +Subproject commit 3412fc4a998dd70e5d0de20a9bfb526023b093cc