From a90643decbd6e38f067f442db018deb17b420bc0 Mon Sep 17 00:00:00 2001 From: Ted Willke Date: Tue, 15 Apr 2025 02:00:18 +0000 Subject: [PATCH 1/7] Fix pom version update, reorder the tag and changelog steps, and add step creating second PR for the version bump. --- .github/workflows/tag-release.yml | 41 +++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index 977971da8..26179f631 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -1,4 +1,4 @@ -# @author Madhavan Sridharan +# Authors: Madhavan Sridharan, Ted Willke name: Prepare new tag & changelog PR # runs on @@ -35,15 +35,11 @@ jobs: git config user.name "GitHub Actions" git config user.email "actions@github.com" - - name: Generate changelog - continue-on-error: true - run: ./update_changelog.sh - - - name: Update revision in pom.xml + - name: Update revision in pom.xml for release run: | - sed -i 's|.*|${{ github.event.inputs.new_revision }}|' ./pom.xml + sed -i 's|.*|${{ github.event.inputs.tag_version }}|' ./pom.xml git add ./pom.xml - git commit -m "chore (release): Start development on ${{ github.event.inputs.new_revision }}" + git commit -m "chore (release): Set release version to ${{ github.event.inputs.tag_version }}" # Note: the tag version will be pushed right away at this step prior to changelog pr merging - name: Create and push tag @@ -51,6 +47,10 @@ jobs: git tag -a "${{ github.event.inputs.tag_version }}" -m "Release tag version ${{ github.event.inputs.tag_version }}" git push origin "${{ github.event.inputs.tag_version }}" + - name: Generate changelog + continue-on-error: true + run: ./update_changelog.sh + - name: Create pull request uses: peter-evans/create-pull-request@v7 env: @@ -65,6 +65,27 @@ jobs: body: | This pull request does the following as part of the release process, - bumps the tag version to ${{ github.event.inputs.tag_version }} - - updates changelog - - bumps the revision in pom.xml to ${{ github.event.inputs.new_revision }} + - updates changelog to include changes for current release + - bumps the revision in pom.xml to ${{ github.event.inputs.tag_version }} Please review and merge. + + - name: Update revision in pom.xml for next development version + run: | + sed -i 's|.*|${{ github.event.inputs.new_revision }}|' ./pom.xml + git checkout -b "release/bump-version-to-${{ github.event.inputs.new_revision }}" + git add ./pom.xml + git commit -m "chore(release): Bump version to ${{ github.event.inputs.new_revision }} for continued development" + + - name: Create pull request for version bump + uses: peter-evans/create-pull-request@v7 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + branch: "release/bump-version-to-${{ github.event.inputs.new_revision }}" + branch-suffix: "short-commit-hash" + base: "main" + title: "chore(release): Bump version to ${{ github.event.inputs.new_revision }} for development" + commit-message: "chore(release): Bump version to ${{ github.event.inputs.new_revision }} for ongoing development" + body: | + This pull request updates the pom.xml version to ${{ + github.event.inputs.new_revision }} to start development for the next release. \ No newline at end of file From f4346d1d07328b5531100b97db81720da9109a01 Mon Sep 17 00:00:00 2001 From: Ted Willke Date: Tue, 15 Apr 2025 02:47:10 +0000 Subject: [PATCH 2/7] Added check for existence of remote branch for bump PR. Create if necessary. --- .github/workflows/tag-release.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index 26179f631..6f23f196e 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -76,6 +76,16 @@ jobs: git add ./pom.xml git commit -m "chore(release): Bump version to ${{ github.event.inputs.new_revision }} for continued development" + - name: Ensure remote branch exists for version bump + run: | + BRANCH="release/bump-version-to-${{ github.event.inputs.new_revision }}" + if git ls-remote --exit-code origin $BRANCH; then + echo "Remote branch exists." + else + echo "Remote branch does not exist. Creating it." + git push origin HEAD:$BRANCH + fi + - name: Create pull request for version bump uses: peter-evans/create-pull-request@v7 env: From 0189dc494abca2b6c1c473ccfdaf23b8ef6e29bf Mon Sep 17 00:00:00 2001 From: Ted Willke Date: Tue, 15 Apr 2025 04:23:33 +0000 Subject: [PATCH 3/7] Updated regex to allow \. in release version suffix. --- update_changelog.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update_changelog.sh b/update_changelog.sh index 7c88e1590..bd2ed9cf4 100755 --- a/update_changelog.sh +++ b/update_changelog.sh @@ -21,7 +21,7 @@ which docker > /dev/null || (echoerr "Please ensure that docker is installed" && cd -P -- "$(dirname -- "$0")" # switch to this dir CHANGELOG_FILE=CHANGELOG.md -previous_version_line_number=$(awk '/## \[[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9]+)?\]/ {print NR; exit}' "$CHANGELOG_FILE" +previous_version_line_number=$(awk '/## \[[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9\.]+)?\]/ {print NR; exit}' "$CHANGELOG_FILE" ) previous_version=$(head -$previous_version_line_number $CHANGELOG_FILE | grep "## \[" | awk -F']' '{print $1}' | cut -c 5-) echo "previous_version:" $previous_version From 3c4cb45719cd12fe8887c9db2d40e05b87599906 Mon Sep 17 00:00:00 2001 From: Ted Willke Date: Tue, 15 Apr 2025 04:43:41 +0000 Subject: [PATCH 4/7] Changed branch name for bump PR, removing short hash code. --- .github/workflows/tag-release.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index 6f23f196e..b5d316629 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -89,13 +89,12 @@ jobs: - name: Create pull request for version bump uses: peter-evans/create-pull-request@v7 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: branch: "release/bump-version-to-${{ github.event.inputs.new_revision }}" - branch-suffix: "short-commit-hash" base: "main" title: "chore(release): Bump version to ${{ github.event.inputs.new_revision }} for development" commit-message: "chore(release): Bump version to ${{ github.event.inputs.new_revision }} for ongoing development" body: | This pull request updates the pom.xml version to ${{ - github.event.inputs.new_revision }} to start development for the next release. \ No newline at end of file + github.event.inputs.new_revision }} to start development for the next release. From 15d7958d6134c53a7387100336aa5cc9003cdb0a Mon Sep 17 00:00:00 2001 From: Ted Willke Date: Tue, 15 Apr 2025 05:08:14 +0000 Subject: [PATCH 5/7] Ensure ALL branches are fetched, including nested ones. --- .github/workflows/tag-release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index b5d316629..300929753 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -29,6 +29,7 @@ jobs: uses: actions/checkout@v4 with: token: ${{ secrets.GITHUB_TOKEN }} + fetch-depth: 0 - name: Git config run: | From 7a342c8415a3e50a662fbfef973872130af2339e Mon Sep 17 00:00:00 2001 From: Ted Willke Date: Tue, 15 Apr 2025 06:34:18 +0000 Subject: [PATCH 6/7] Remove --base flag from git command to correct problem with first changelog creation. --- update_changelog.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update_changelog.sh b/update_changelog.sh index bd2ed9cf4..c378cfcd4 100755 --- a/update_changelog.sh +++ b/update_changelog.sh @@ -38,7 +38,7 @@ if [[ -t 1 ]]; then INTERACTIVE="-it" fi -docker run $INTERACTIVE --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator -u datastax -p jvector -t $GITHUB_TOKEN --since-tag $previous_version --base $CHANGELOG_FILE --output $CHANGELOG_FILE --release-branch 'main' --exclude-labels 'duplicate,question,invalid,wontfix' +docker run $INTERACTIVE --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator -u datastax -p jvector -t $GITHUB_TOKEN --since-tag $previous_version --output $CHANGELOG_FILE --release-branch 'main' --exclude-labels 'duplicate,question,invalid,wontfix' # Remove the additional footer added by the changelog generator head -n $(( $(wc -l < $CHANGELOG_FILE) - 3 )) $CHANGELOG_FILE > "$CHANGELOG_FILE.tmp" && mv "$CHANGELOG_FILE.tmp" "$CHANGELOG_FILE" From 1d95957a959afc0af38e2d804d9f18686e331898 Mon Sep 17 00:00:00 2001 From: Ted Willke Date: Tue, 15 Apr 2025 07:21:48 +0000 Subject: [PATCH 7/7] Fix second PR generation. --- .github/workflows/tag-release.yml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index 300929753..d93638944 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -70,23 +70,21 @@ jobs: - bumps the revision in pom.xml to ${{ github.event.inputs.tag_version }} Please review and merge. + - name: Clean workspace and checkout base branch + run: | + git checkout main + git reset --hard origin/main # Ensure we are clean relative to remote main + + - name: Create branch for next development version + run: | + git checkout -b "release/bump-version-to-${{ github.event.inputs.new_revision }}" main + - name: Update revision in pom.xml for next development version run: | sed -i 's|.*|${{ github.event.inputs.new_revision }}|' ./pom.xml - git checkout -b "release/bump-version-to-${{ github.event.inputs.new_revision }}" git add ./pom.xml git commit -m "chore(release): Bump version to ${{ github.event.inputs.new_revision }} for continued development" - - name: Ensure remote branch exists for version bump - run: | - BRANCH="release/bump-version-to-${{ github.event.inputs.new_revision }}" - if git ls-remote --exit-code origin $BRANCH; then - echo "Remote branch exists." - else - echo "Remote branch does not exist. Creating it." - git push origin HEAD:$BRANCH - fi - - name: Create pull request for version bump uses: peter-evans/create-pull-request@v7 env: @@ -95,7 +93,6 @@ jobs: branch: "release/bump-version-to-${{ github.event.inputs.new_revision }}" base: "main" title: "chore(release): Bump version to ${{ github.event.inputs.new_revision }} for development" - commit-message: "chore(release): Bump version to ${{ github.event.inputs.new_revision }} for ongoing development" body: | This pull request updates the pom.xml version to ${{ github.event.inputs.new_revision }} to start development for the next release.