From: Andrew Grimberg Date: Mon, 6 Nov 2023 22:39:06 +0000 (-0800) Subject: CI: Generate GitHub releases X-Git-Tag: v0.15.0~1 X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=commitdiff_plain;h=e8962033ac74b7d9087086fab644d4843d103ff8;p=releng%2Fcommon-packer.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 * Setup Python to run reno * 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-4974 Change-Id: Iff10b3b6bbf1e88708a89a12338cb042bafe42fe Signed-off-by: Andrew Grimberg --- diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 0000000..6072919 --- /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 94b6a06..2911d79 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: Get tag id: tag uses: devops-actions/action-get-tag@v1.0.2 @@ -39,3 +42,29 @@ jobs: Cheers, LF Releng + - name: Configure Python + uses: actions/setup-python@v4 + with: + python-version: "3.8" + - 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 }}