Skip to content

Generate Release Notes #6

Generate Release Notes

Generate Release Notes #6

# SPDX-License-Identifier: Apache-2.0
name: "Generate Release Notes"
on:
workflow_dispatch:
inputs:
release-id:
description: "Release Version Number (ex: 0.59.2):"
type: string
required: true
defaults:
run:
shell: bash
permissions:
contents: read
actions: read
jobs:
generate-release-notes:
name: Generate Release Notes
runs-on: hiero-network-node-linux-medium
steps:
- name: Harden Runner
uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2
with:
egress-policy: audit
- name: Validate and Correct Release Identifier
id: validate
run: |
release-identifier="${{ inputs.release-id }}"
echo "Input release identifier: '${release-identifier}'"
# Trim leading/trailing spaces
release-identifier="$(echo -n "${release-identifier}" | xargs)"
# Remove leading "v" if present
release-identifier="${release-identifier#v}"
echo "Corrected release identifier: ${release-identifier}"
# Regular expression for semantic versioning (X.Y.Z)
semver_regex="^[0-9]+\\.[0-9]+\\.[0-9]+$"
if [[ ! "${release-identifier}" =~ ${semver_regex} ]]; then
echo "Error: Invalid release version format after correction. Expected format: X.Y.Z (e.g., 0.59.2)"
exit 1
fi
echo "Release identifier is valid: ${release-identifier}"
- name: Checkout Code
id: checkout_code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: "0"
ref: main
token: ${{ secrets.GH_ACCESS_TOKEN }}
- name: Git-Semver Setup Action
uses: DJ-BBot/setup-git-semver@91baf2ca207495aa35db3441038ddeae2b6904c7 # v1.0.2
- name: Create Release Notes with Markdown
run: |
# TODO: Validate the version number exists in the repo
git-semver log --markdown "${{ steps.validate.outputs.release-identifier }}"