Files
gemini-cli/.github/workflows/release-notes.yml

68 lines
2.4 KiB
YAML

# This workflow is triggered on every new release.
# It uses Gemini to generate release notes and creates a PR with the changes.
name: Generate Release Notes
on:
release:
types: [created]
jobs:
generate-release-notes:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
# The user-level skills need to be available to the workflow
fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Get release information
id: release_info
run: |
echo "VERSION=${{ github.event.release.tag_name }}" >> "$GITHUB_OUTPUT"
# Use a heredoc to preserve multiline release body
echo 'RAW_CHANGELOG<<EOF' >> "$GITHUB_OUTPUT"
echo "${{ github.event.release.body }}" >> "$GITHUB_OUTPUT"
echo 'EOF' >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate Changelog with Gemini
uses: 'google-github-actions/run-gemini-cli@a3bf79042542528e91937b3a3a6fbc4967ee3c31' # ratchet:google-github-actions/run-gemini-cli@v0
env:
VERSION: ${{ steps.release_info.outputs.VERSION }}
RAW_CHANGELOG: ${{ steps.release_info.outputs.RAW_CHANGELOG }}
with:
gemini_api_key: ${{ secrets.GEMINI_API_KEY }}
prompt: |
Activate the 'docs-changelog' skill.
**Release Information:**
- New Version: $VERSION
- Release Date: $(date +%Y-%m-%d)
- Raw Changelog Data: $RAW_CHANGELOG
Execute the release notes generation process using the information provided.
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "docs(changelog): update for ${{ steps.release_info.outputs.VERSION }}"
title: "Changelog for ${{ steps.release_info.outputs.VERSION }}"
body: |
This PR contains the auto-generated changelog for the ${{ steps.release_info.outputs.VERSION }} release.
Please review and merge.
branch: "changelog-${{ steps.release_info.outputs.VERSION }}"
delete-branch: true