summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Gusev <ubuntolog@gmail.com>2024-07-18 14:50:34 +0300
committerGitHub <noreply@github.com>2024-07-18 14:50:34 +0300
commitecced7863479256d97026967b22fb7419508f474 (patch)
tree98fbea74be955a9d61bce4317f417acd8f23d893
parent50360e994a8141fc0aeaafae126a74a9b833fe31 (diff)
feat(actions): add create-release-draft action (#787)
-rw-r--r--.github/workflows/create-release-draft.yaml40
-rwxr-xr-xhack/create-release-pr.sh31
2 files changed, 71 insertions, 0 deletions
diff --git a/.github/workflows/create-release-draft.yaml b/.github/workflows/create-release-draft.yaml
new file mode 100644
index 0000000..af0931d
--- /dev/null
+++ b/.github/workflows/create-release-draft.yaml
@@ -0,0 +1,40 @@
+name: Create release draft
+on:
+ workflow_dispatch:
+ pull_request:
+ branches:
+ - 'release-*'
+
+jobs:
+ create-draft:
+ name: Create release draft
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Get version
+ id: version
+ run: |
+ echo version=$(cat VERSION) >> $GITHUB_OUTPUT
+
+ - name: Setup Golang
+ uses: actions/setup-go@v5
+ with:
+ go-version: '1.22'
+
+ - name: Build binaries
+ id: binaries
+ run: |
+ make release-binaries
+
+ - name: Create release draft
+ id: create-release
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ gh release create "v${{ steps.version.outputs.version }}" \
+ --title "v${{ steps.version.outputs.version }}" \
+ --generate-notes \
+ --draft \
+ dist/release/*
diff --git a/hack/create-release-pr.sh b/hack/create-release-pr.sh
new file mode 100755
index 0000000..063fe85
--- /dev/null
+++ b/hack/create-release-pr.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+RELEASE_BRANCH="$(git rev-parse --abbrev-ref HEAD || true)"
+set -eux
+set -o pipefail
+
+### look for latest on-branch tag
+PREVIOUS_TAG=$(git describe --tags --abbrev=0 --match "*${RELEASE_BRANCH##release-}*" 2>/dev/null || true)
+
+if [ -n "$PREVIOUS_TAG" ]; then
+ NEW_VERSION=$(semver-cli inc patch $PREVIOUS_TAG)
+else
+ NEW_VERSION="${RELEASE_BRANCH##release-}.0"
+fi
+
+echo $NEW_VERSION > VERSION
+
+IMAGE_TAG="v${NEW_VERSION}"
+make manifests
+
+git checkout -b "feat/new-version-${NEW_VERSION}"
+git commit -m "Release ${NEW_VERSION}" VERSION manifests/
+git push
+gh label --repo $(git remote get-url origin) create --force release
+gh pr --repo $(git remote get-url origin) \
+ create \
+ --base ${RELEASE_BRANCH} \
+ --title "Release ${NEW_VERSION}" \
+ --body "Release ${NEW_VERSION}" \
+ --label release
+git checkout -