diff --git a/.github/workflows/create-release-draft.yaml b/.github/workflows/create-release-draft.yaml new file mode 100644 index 00000000..af0931dc --- /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 00000000..063fe856 --- /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 -