Set the date automatically when the workflow runs, leaving an optional override
This commit is contained in:
37
.github/workflows/generate-changelog.yml
vendored
37
.github/workflows/generate-changelog.yml
vendored
@@ -8,9 +8,10 @@ on:
|
|||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
date:
|
date:
|
||||||
description: "Release date (YYYY-MM-DD format, e.g., 2025-12-04)"
|
description: "Release date (YYYY-MM-DD format, defaults to today)"
|
||||||
required: true
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
default: ""
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@@ -39,6 +40,18 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
uv sync --group dev
|
uv sync --group dev
|
||||||
|
|
||||||
|
- name: Set release date
|
||||||
|
id: set_date
|
||||||
|
run: |
|
||||||
|
if [ -z "${{ inputs.date }}" ]; then
|
||||||
|
RELEASE_DATE=$(date +%Y-%m-%d)
|
||||||
|
echo "Using today's date: $RELEASE_DATE"
|
||||||
|
else
|
||||||
|
RELEASE_DATE="${{ inputs.date }}"
|
||||||
|
echo "Using provided date: $RELEASE_DATE"
|
||||||
|
fi
|
||||||
|
echo "release_date=$RELEASE_DATE" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Validate inputs
|
- name: Validate inputs
|
||||||
run: |
|
run: |
|
||||||
# Validate version format (basic check)
|
# Validate version format (basic check)
|
||||||
@@ -47,12 +60,14 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Validate date format
|
# Validate date format if provided
|
||||||
if ! date -d "${{ inputs.date }}" >/dev/null 2>&1; then
|
if [ -n "${{ inputs.date }}" ]; then
|
||||||
# Try macOS date format
|
if ! date -d "${{ inputs.date }}" >/dev/null 2>&1; then
|
||||||
if ! date -j -f "%Y-%m-%d" "${{ inputs.date }}" >/dev/null 2>&1; then
|
# Try macOS date format
|
||||||
echo "Error: Date must be in YYYY-MM-DD format (e.g., 2025-12-04)"
|
if ! date -j -f "%Y-%m-%d" "${{ inputs.date }}" >/dev/null 2>&1; then
|
||||||
exit 1
|
echo "Error: Date must be in YYYY-MM-DD format (e.g., 2025-12-04)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -74,11 +89,11 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "## Preview of changelog for version ${{ inputs.version }}"
|
echo "## Preview of changelog for version ${{ inputs.version }}"
|
||||||
echo ""
|
echo ""
|
||||||
uv run towncrier build --draft --version "${{ inputs.version }}" --date "${{ inputs.date }}"
|
uv run towncrier build --draft --version "${{ inputs.version }}" --date "${{ steps.set_date.outputs.release_date }}"
|
||||||
|
|
||||||
- name: Build changelog
|
- name: Build changelog
|
||||||
run: |
|
run: |
|
||||||
uv run towncrier build --version "${{ inputs.version }}" --date "${{ inputs.date }}" --yes
|
uv run towncrier build --version "${{ inputs.version }}" --date "${{ steps.set_date.outputs.release_date }}" --yes
|
||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v7
|
uses: peter-evans/create-pull-request@v7
|
||||||
@@ -93,7 +108,7 @@ jobs:
|
|||||||
|
|
||||||
### Summary
|
### Summary
|
||||||
- **Version:** ${{ inputs.version }}
|
- **Version:** ${{ inputs.version }}
|
||||||
- **Date:** ${{ inputs.date }}
|
- **Date:** ${{ steps.set_date.outputs.release_date }}
|
||||||
- **Fragments processed:** ${{ steps.check_fragments.outputs.fragment_count }}
|
- **Fragments processed:** ${{ steps.check_fragments.outputs.fragment_count }}
|
||||||
|
|
||||||
### What this PR does
|
### What this PR does
|
||||||
|
|||||||
Reference in New Issue
Block a user