Skip to content

Draft Release

Draft Release #8

Workflow file for this run

#
# Copyright 2025 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:
inputs:
tag-name:
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]+".'
required: false
jobs:
release-draft:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548
with:
python-version: '3.13'
- name: Check Format of Received Tag
id: check-version-tag
uses: AbsaOSS/version-tag-check@36496be76eab24e1f14d45d3b8292311a2aebaaa
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
if: ${{ github.event.inputs.from-tag-name }}
id: check-version-from-tag
uses: AbsaOSS/version-tag-check@36496be76eab24e1f14d45d3b8292311a2aebaaa
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
github-repository: ${{ github.repository }}
version-tag: ${{ github.event.inputs.from-tag-name }}
should-exist: true
- name: Generate Release Notes
id: generate_release_notes
uses: AbsaOSS/generate-release-notes@B90223510d1704301a36a36f0d86a72a0e72f0cf
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
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'
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
- name: Create and Push Tag
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd
env:
TAG_NAME: ${{ github.event.inputs.tag-name }}
with:
script: |
const tag = process.env.TAG_NAME
const ref = `refs/tags/${tag}`;
const sha = context.sha; // The SHA of the commit to tag
await github.rest.git.createRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: ref,
sha: sha
});
console.log(`Tag created: ${tag}`);
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Create Draft Release
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
name: ${{ github.event.inputs.tag-name }}
body: ${{ steps.generate_release_notes.outputs.release-notes }}
tag_name: ${{ github.event.inputs.tag-name }}
draft: true
prerelease: false