From aad50316c5c8cf27d1034bf94f9f973434148fac Mon Sep 17 00:00:00 2001 From: Daniil Fedotov Date: Wed, 10 Apr 2024 18:18:01 -0400 Subject: [PATCH] Add changelog generation to pre-release workflow --- .github/workflows/main.yaml | 16 ++++++++++++++++ .github/workflows/pre-release.yml | 13 +++++++++++-- .gitignore | 2 ++ Makefile | 3 +++ build/gorelease.sh | 3 +++ build/reno_report.sh | 13 ++++++++----- 6 files changed, 43 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index a208db00b1..47fbcea4c4 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -44,6 +44,22 @@ jobs: - name: restore_gosum run: echo "${{needs.gomod.outputs.gosum}}" > go.sum - run: make golint + + reno_lint: + runs-on: ubuntu-20.04 + needs: gomod + steps: + - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + with: + fetch-depth: 0 + - name: reset_git_extension + run: git config --unset-all extensions.worktreeconfig + - name: reno_lint + run: make reno-lint + ## Reno lint does not catch some errors which make reno report fail + - name: reno_report_check + run: make reno-report + test: runs-on: ubuntu-20.04 needs: gomod diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 0946210d9d..0f6e607279 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -32,6 +32,7 @@ jobs: export CURRENT_TAG=$(git describe --abbrev=0 --tags) echo ./build/bump_version.sh "${CURRENT_TAG}" "${RELEASE_TAG}" ./build/bump_version.sh "${CURRENT_TAG}" "${RELEASE_TAG}" + make reno-report VERSION="${RELEASE_TAG}" - name: commit_changes run: | git config --global user.name 'Kasten Production' @@ -39,10 +40,18 @@ jobs: git checkout -B "kan-docs-${PRERELEASE_DOCS_BRANCH}-${RELEASE_TAG}" git add -A git commit -s -m "pre-release: Update version to ${RELEASE_TAG}" + - name: push_changes + run: git push origin "kan-docs-${PRERELEASE_DOCS_BRANCH}-${RELEASE_TAG}" + - name: create_pr_body + run: | + echo "Update version to ${RELEASE_TAG}" > PR_BODY_FILE + echo "" >> PR_BODY_FILE + echo "Please check the changelog for the following merges:" >> PR_BODY_FILE + export CURRENT_TAG=$(git describe --abbrev=0 --tags) + git log ${CURRENT_TAG}..kan-docs-${PRERELEASE_DOCS_BRANCH}-${RELEASE_TAG} --pretty="- %h: %s" | grep -v ': test' | grep -v ': doc' | grep -v ': build' | grep -v ': deps' >> PR_BODY_FILE - name: create_pr run: | - git push origin "kan-docs-${PRERELEASE_DOCS_BRANCH}-${RELEASE_TAG}" - gh pr create --title "pre-release: Update version to ${RELEASE_TAG}" --body "Update version to ${RELEASE_TAG}" --head "kan-docs-${PRERELEASE_DOCS_BRANCH}-${RELEASE_TAG}" --base master --reviewer tdmanv,pavannd1,viveksinghggits --label kueue + gh pr create --title "pre-release: Update version to ${RELEASE_TAG}" -F PR_BODY_FILE --head "kan-docs-${PRERELEASE_DOCS_BRANCH}-${RELEASE_TAG}" --base master --reviewer tdmanv,pavannd1,viveksinghggits,hairyhum --label kueue env: GH_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/.gitignore b/.gitignore index ddda7de854..14bb7c3793 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,5 @@ **/*.swp /.idea /releasenotes/config.yaml +CHANGELOG.rst +CHANGELOG_CURRENT.rst diff --git a/Makefile b/Makefile index 2e64f66cb1..22fdb41de5 100644 --- a/Makefile +++ b/Makefile @@ -293,3 +293,6 @@ reno-new: reno-report: @$(MAKE) run CMD="./build/reno_report.sh $(VERSION)" + +reno-lint: + @$(MAKE) run CMD="reno lint" diff --git a/build/gorelease.sh b/build/gorelease.sh index 61ca8fd15d..52eeca322a 100755 --- a/build/gorelease.sh +++ b/build/gorelease.sh @@ -26,6 +26,9 @@ then exit 1 fi +## Set default changelog file +CHANGELOG_FILE=${CHANGELOG_FILE:-./CHANGELOG_CURRENT.md} + RELEASE_NOTES="" if [ -n "${CHANGELOG_FILE:-}" ] then diff --git a/build/reno_report.sh b/build/reno_report.sh index 3720e556f8..a3303bce29 100755 --- a/build/reno_report.sh +++ b/build/reno_report.sh @@ -37,8 +37,11 @@ rst2md ./CHANGELOG.rst --output ./CHANGELOG.md ## It will be replaced by `unreleased_version_title` setting in the actual report file UNRELEASED_VERSION=$(reno list 2>/dev/null | grep -E "^[0-9]+\.[0-9]+\.[0-9]+\-[0-9]+") -## Generate rst report -echo reno report --version=${UNRELEASED_VERSION} --output ./CHANGELOG_CURRENT.rst -reno report --version=${UNRELEASED_VERSION} --output ./CHANGELOG_CURRENT.rst -## Convert rst to markdown -rst2md ./CHANGELOG_CURRENT.rst --output ./CHANGELOG_CURRENT.md +if [ -n "${UNRELEASED_VERSION}" ] +then + ## Generate rst report + echo reno report --version=${UNRELEASED_VERSION} --output ./CHANGELOG_CURRENT.rst + reno report --version=${UNRELEASED_VERSION} --output ./CHANGELOG_CURRENT.rst + ## Convert rst to markdown + rst2md ./CHANGELOG_CURRENT.rst --output ./CHANGELOG_CURRENT.md +fi