From ca97b7d16f62c5525bff855c6ad4f0ab1c85b2dc Mon Sep 17 00:00:00 2001 From: "Tobias.Mikula" Date: Fri, 22 May 2026 12:25:32 +0200 Subject: [PATCH 1/6] Improving the release notes workflow --- .github/workflows/check_pr_release_notes.yml | 22 +---- .github/workflows/release_draft.yml | 89 +++++++++----------- 2 files changed, 43 insertions(+), 68 deletions(-) diff --git a/.github/workflows/check_pr_release_notes.yml b/.github/workflows/check_pr_release_notes.yml index 5b77e5f..b899955 100644 --- a/.github/workflows/check_pr_release_notes.yml +++ b/.github/workflows/check_pr_release_notes.yml @@ -1,19 +1,3 @@ -# -# Copyright 2026 ABSA Group Limited -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - name: Check PR Release Notes on: @@ -22,7 +6,7 @@ on: branches: [ master ] concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: release-notes-check-${{ github.ref }} cancel-in-progress: true jobs: @@ -30,9 +14,9 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 with: - python-version: '3.13' + python-version: '3.14' - name: Check presence of release notes in PR description uses: AbsaOSS/release-notes-presence-check@8e586b26a5e27f899ee8590a5d988fd4780a3dbf diff --git a/.github/workflows/release_draft.yml b/.github/workflows/release_draft.yml index ad78b70..cb188cd 100644 --- a/.github/workflows/release_draft.yml +++ b/.github/workflows/release_draft.yml @@ -1,19 +1,3 @@ -# -# Copyright 2026 ABSA Group Limited -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - name: Draft Release on: workflow_dispatch: @@ -22,35 +6,37 @@ on: description: 'Name of git tag to be created, and then draft release created. Syntax: "v[0-9]+.[0-9]+.[0-9]+".' required: true from-tag-name: - description: 'Name of the git tag from which to detect changes from. Default value: latest tag. Syntax: "v[0-9]+.[0-9]+.[0-9]+".' + description: >- + Name of the git tag from which to detect changes from. + Default value: latest tag. Syntax: "v[0-9]+.[0-9]+.[0-9]+". required: false jobs: release-draft: runs-on: ubuntu-latest steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 persist-credentials: false - - uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 with: - python-version: '3.13' + python-version: '3.14' - - name: Check Format of Received Tag + - name: Check format of received target tag id: check-version-tag - uses: AbsaOSS/version-tag-check@36496be76eab24e1f14d45d3b8292311a2aebaaa + uses: AbsaOSS/version-tag-check@4145e48bf3f77a5afff2ec9afdd8afb6b53bce34 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: github-repository: ${{ github.repository }} version-tag: ${{ github.event.inputs.tag-name }} - - name: Check Format of Received From Tag + - name: Check format of received from tag if: ${{ github.event.inputs.from-tag-name }} id: check-version-from-tag - uses: AbsaOSS/version-tag-check@36496be76eab24e1f14d45d3b8292311a2aebaaa + uses: AbsaOSS/version-tag-check@4145e48bf3f77a5afff2ec9afdd8afb6b53bce34 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -60,56 +46,61 @@ jobs: - name: Generate Release Notes id: generate_release_notes - uses: AbsaOSS/generate-release-notes@B90223510d1704301a36a36f0d86a72a0e72f0cf + uses: AbsaOSS/generate-release-notes@da535383f54a6532adb84e88d3b6e5c7236132df env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: + release-notes-title: "## [Rr]elease [Nn]otes" tag-name: ${{ github.event.inputs.tag-name }} from-tag-name: ${{ github.event.inputs.from-tag-name }} chapters: | - - {"title": "Entries to skip 🚫", "label": "duplicate"} - - {"title": "Entries to skip 🚫", "label": "invalid"} - - {"title": "Entries to skip 🚫", "label": "wontfix"} - - {"title": "Entries to skip 🚫", "label": "no RN"} - - {"title": "Breaking Changes 💥", "label": "breaking change"} - - {"title": "Security updates 👮", "label": "security"} - - {"title": "New Features 🎉", "label": "enhancement"} - - {"title": "Bugfixes 🛠", "label": "bug"} - - {"title": "Epics 📖", "label": "epic"} - - {"title": "Infrastructure ⚙️", "label": "infrastructure"} - - {"title": "Silent-live 🤫", "label": "silent live"} - - {"title": "Documentation 📜", "label": "documentation"} - duplicity-scope: 'none' + - { title: Breaking Changes 💥, label: breaking change, order: 10 } + - { title: New Features 🎉, label: feature, order: 20 } + - { title: Bugfixes 🛠, label: bug, order: 30 } + - { title: Infrastructure ⚙️, label: infrastructure, order: 40 } + - { title: UI/UX 🎨, label: UI/UX, order: 50 } warnings: true - skip-release-notes-labels: "no RN,duplicate,invalid,wontfix" print-empty-chapters: false - row-format-issue: '_{title}_ {developers} in {number}' - row-format-pr: '_{title}_ {developers} in {number}' - row-format-link-pr: true - hierarchy: true + row-format-issue: '{type}: {number} _{title}_ by {developers} in {pull-requests}' + row-format-pr: '{number} _{title}_ by {developers}' - - name: Create and Push Tag - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd + - name: Create and push tag + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 env: TAG_NAME: ${{ github.event.inputs.tag-name }} with: script: | - const tag = process.env.TAG_NAME + const tag = process.env.TAG_NAME; const ref = `refs/tags/${tag}`; const sha = context.sha; // The SHA of the commit to tag + const tagMessage = `${tag} released by GitHub Action`; + + const tagObject = await github.rest.git.createTag({ + owner: context.repo.owner, + repo: context.repo.repo, + tag: tag, + message: tagMessage, + object: sha, + type: 'commit', + tagger: { + name: context.actor, + email: `${context.actor}@users.noreply.github.com`, + date: new Date().toISOString() + } + }); await github.rest.git.createRef({ owner: context.repo.owner, repo: context.repo.repo, ref: ref, - sha: sha + sha: tagObject.data.sha }); console.log(`Tag created: ${tag}`); github-token: ${{ secrets.GITHUB_TOKEN }} - - name: Create Draft Release - uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b + - name: Create draft release + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 6bfcb47d3a89b7d0c58888f8bb1493197fffa38a Mon Sep 17 00:00:00 2001 From: "Tobias.Mikula" Date: Tue, 26 May 2026 06:39:22 +0200 Subject: [PATCH 2/6] Improving the configuration of the generator. --- .github/workflows/release_draft.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release_draft.yml b/.github/workflows/release_draft.yml index cb188cd..a7533e1 100644 --- a/.github/workflows/release_draft.yml +++ b/.github/workflows/release_draft.yml @@ -11,6 +11,9 @@ on: Default value: latest tag. Syntax: "v[0-9]+.[0-9]+.[0-9]+". required: false +permissions: + contents: write + jobs: release-draft: runs-on: ubuntu-latest @@ -81,12 +84,7 @@ jobs: tag: tag, message: tagMessage, object: sha, - type: 'commit', - tagger: { - name: context.actor, - email: `${context.actor}@users.noreply.github.com`, - date: new Date().toISOString() - } + type: 'commit' }); await github.rest.git.createRef({ From 5963ad39279e943acbc806f3262b027094499b5f Mon Sep 17 00:00:00 2001 From: "Tobias.Mikula" Date: Tue, 26 May 2026 09:57:02 +0200 Subject: [PATCH 3/6] Adding permissions and making tag verified. --- .github/workflows/release_draft.yml | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release_draft.yml b/.github/workflows/release_draft.yml index a7533e1..e38fe6a 100644 --- a/.github/workflows/release_draft.yml +++ b/.github/workflows/release_draft.yml @@ -13,6 +13,8 @@ on: permissions: contents: write + issues: read + pull-requests: read jobs: release-draft: @@ -75,23 +77,13 @@ jobs: script: | const tag = process.env.TAG_NAME; const ref = `refs/tags/${tag}`; - const sha = context.sha; // The SHA of the commit to tag - const tagMessage = `${tag} released by GitHub Action`; - - const tagObject = await github.rest.git.createTag({ - owner: context.repo.owner, - repo: context.repo.repo, - tag: tag, - message: tagMessage, - object: sha, - type: 'commit' - }); + const sha = context.sha; await github.rest.git.createRef({ owner: context.repo.owner, repo: context.repo.repo, ref: ref, - sha: tagObject.data.sha + sha: sha }); console.log(`Tag created: ${tag}`); From b101896829abefefd49d6777962f35efee9b4e05 Mon Sep 17 00:00:00 2001 From: "Tobias.Mikula" Date: Tue, 2 Jun 2026 10:07:38 +0200 Subject: [PATCH 4/6] Adding no RN label and make it hidden. --- .github/workflows/release_draft.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release_draft.yml b/.github/workflows/release_draft.yml index e38fe6a..92ca90b 100644 --- a/.github/workflows/release_draft.yml +++ b/.github/workflows/release_draft.yml @@ -64,6 +64,7 @@ jobs: - { title: Bugfixes 🛠, label: bug, order: 30 } - { title: Infrastructure ⚙️, label: infrastructure, order: 40 } - { title: UI/UX 🎨, label: UI/UX, order: 50 } + - { title: Entries to skip 🚫, label: no RN, hidden: true, order: 99 } warnings: true print-empty-chapters: false row-format-issue: '{type}: {number} _{title}_ by {developers} in {pull-requests}' From cceacc00ab3cf6521229d095d319d59292a4adc7 Mon Sep 17 00:00:00 2001 From: "Tobias.Mikula" Date: Fri, 5 Jun 2026 09:42:23 +0200 Subject: [PATCH 5/6] Updating JaCoCo Check CI versions. --- .github/workflows/ci-check-jacoco.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-check-jacoco.yml b/.github/workflows/ci-check-jacoco.yml index 9fa8841..4153e47 100644 --- a/.github/workflows/ci-check-jacoco.yml +++ b/.github/workflows/ci-check-jacoco.yml @@ -26,13 +26,13 @@ jobs: steps: - name: Checkout code id: code-checkout - uses: actions/checkout@v4 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 with: persist-credentials: false - name: Setup JVM and SBT id: jvm-setup - uses: coursier/setup-action@v1.3.5 + uses: coursier/setup-action@fd1707a76b027efdfb66ca79318b4d29b72e5a02 with: jvm: corretto:21.0.2.13.1 apps: sbt @@ -48,7 +48,7 @@ jobs: - name: Publish JaCoCo Report in PR comments id: jacoco - uses: MoranaApps/jacoco-report@v2 + uses: MoranaApps/jacoco-report@69351d88d18f7697c416e1bc2020ed05606d8120 with: token: '${{ secrets.GITHUB_TOKEN }}' paths: | From 1a6a83f8415f275b28b510170d9f07f15b09022d Mon Sep 17 00:00:00 2001 From: "Tobias.Mikula" Date: Fri, 5 Jun 2026 09:56:02 +0200 Subject: [PATCH 6/6] Fixing the required python version into 3.14 for MoranaApps/jacoco-report. --- .github/workflows/ci-check-jacoco.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci-check-jacoco.yml b/.github/workflows/ci-check-jacoco.yml index 4153e47..d503ec0 100644 --- a/.github/workflows/ci-check-jacoco.yml +++ b/.github/workflows/ci-check-jacoco.yml @@ -46,6 +46,11 @@ jobs: AWS_ACCESS_KEY_ID: "ignored" AWS_SECRET_ACCESS_KEY: "ignored" + - name: Setup Python + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 + with: + python-version: '3.14' + - name: Publish JaCoCo Report in PR comments id: jacoco uses: MoranaApps/jacoco-report@69351d88d18f7697c416e1bc2020ed05606d8120