diff options
| author | Vadim Gusev <ubuntolog@gmail.com> | 2024-07-18 14:50:34 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-18 14:50:34 +0300 |
| commit | ecced7863479256d97026967b22fb7419508f474 (patch) | |
| tree | 98fbea74be955a9d61bce4317f417acd8f23d893 | |
| parent | 50360e994a8141fc0aeaafae126a74a9b833fe31 (diff) | |
feat(actions): add create-release-draft action (#787)
| -rw-r--r-- | .github/workflows/create-release-draft.yaml | 40 | ||||
| -rwxr-xr-x | hack/create-release-pr.sh | 31 |
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 - |
