From: Andrew Grimberg Date: Mon, 6 Nov 2023 22:12:27 +0000 (-0800) Subject: CI: Generate GitHub releases X-Git-Tag: v0.37.9~5 X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F38%2F72338%2F1;p=releng%2Flftools.git 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 --- 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 }}