From 712e20a96894ce1da4f8f53037cd951d8e4e1889 Mon Sep 17 00:00:00 2001 From: Andrew Grimberg Date: Mon, 6 Nov 2023 14:12:27 -0800 Subject: [PATCH] CI: Generate GitHub releases * Increase the checkout depth from 1 to 30 to handle reno needing to be able to find all relevant tags (current and current -1) and also pull the tags * Generate a reno report for the given tag and then modify the report to strip out all the extra garbage that is added by the report process to get it into a valid markdown file and not RST file * Use `gh` cli tool to generate the release notes using the auto-changelog generation plus the reno release notes Issue: RELENG-4973 Signed-off-by: Andrew Grimberg Change-Id: Ic54ac4a5b138aabe2adcc3a9612f018ed34b4983 --- .github/release.yml | 7 +++++++ .github/workflows/release.yaml | 27 ++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 .github/release.yml diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 00000000..6072919c --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,7 @@ +# .github/release.yml + +changelog: + categories: + - title: Changes + labels: + - "*" diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 63bc4de8..e2fd7a82 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -10,7 +10,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + fetch-depth: 30 + fetch-tags: true - name: Configure Python uses: actions/setup-python@v4 with: @@ -53,3 +56,25 @@ jobs: Cheers, LF Release Engineering + - name: Generate reno report + run: >- + pipx run tox -e reno -- report \ + --version "${{ steps.tag.outputs.tag }}" \ + 2>/dev/null > reno-notes.md || true + if grep -q 'reno: FAIL' reno-notes.md + then + touch modified-reno-notes.md + else + sed '/^\.pkg.*$/d' reno-notes.md | + sed '/^reno:.*$/d' | + sed '/^\.\. .*$/d' | + sed '$d' | + sed '$d' | + sed '1d' > modified-reno-notes.md + fi + - name: Create Release Notes + run: >- + gh release create ${{ steps.tag.outputs.tag }} --generate-notes \ + -F modified-reno-notes.md + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -- 2.16.6