| |
| |
| name: 'Generate Release Notes' |
|
|
| on: |
| release: |
| types: ['published'] |
| workflow_dispatch: |
| inputs: |
| version: |
| description: 'New version (e.g., v1.2.3)' |
| required: true |
| type: 'string' |
| body: |
| description: 'Release notes body' |
| required: true |
| type: 'string' |
| time: |
| description: 'Release time' |
| required: true |
| type: 'string' |
|
|
| jobs: |
| generate-release-notes: |
| if: "github.repository == 'google-gemini/gemini-cli'" |
| runs-on: 'ubuntu-latest' |
| permissions: |
| contents: 'write' |
| pull-requests: 'write' |
| steps: |
| - name: 'Checkout repository' |
| uses: 'actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5' |
| with: |
| persist-credentials: false |
| |
| fetch-depth: 0 |
| ref: 'main' |
|
|
| - name: 'Set up Node.js' |
| uses: 'actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020' |
| with: |
| node-version: '20' |
|
|
| - name: 'Get release information' |
| id: 'release_info' |
| run: | |
| VERSION="${{ github.event.inputs.version || github.event.release.tag_name }}" |
| TIME="${{ github.event.inputs.time || github.event.release.created_at }}" |
| |
| echo "VERSION=${VERSION}" >> "$GITHUB_OUTPUT" |
| echo "TIME=${TIME}" >> "$GITHUB_OUTPUT" |
|
|
| |
| echo 'RAW_CHANGELOG<<EOF' >> "$GITHUB_OUTPUT" |
| printf "%s\n" "$BODY" >> "$GITHUB_OUTPUT" |
| echo 'EOF' >> "$GITHUB_OUTPUT" |
| env: |
| GH_TOKEN: '${{ secrets.GEMINI_CLI_ROBOT_GITHUB_PAT }}' |
| BODY: '${{ github.event.inputs.body || github.event.release.body }}' |
|
|
| - name: 'Validate version' |
| id: 'validate_version' |
| run: | |
| if echo "${{ steps.release_info.outputs.VERSION }}" | grep -q "nightly"; then |
| echo "Nightly release detected. Stopping workflow." |
| echo "CONTINUE=false" >> "$GITHUB_OUTPUT" |
| else |
| echo "CONTINUE=true" >> "$GITHUB_OUTPUT" |
| fi |
| |
| - name: 'Generate Changelog with Gemini' |
| if: "steps.validate_version.outputs.CONTINUE == 'true'" |
| uses: 'google-github-actions/run-gemini-cli@a3bf79042542528e91937b3a3a6fbc4967ee3c31' |
| env: |
| GEMINI_CLI_TRUST_WORKSPACE: true |
| with: |
| upload_artifacts: 'true' |
| gemini_api_key: '${{ secrets.GEMINI_API_KEY }}' |
| prompt: | |
| Activate the 'docs-changelog' skill. |
| |
| **Release Information:** |
| - New Version: ${{ steps.release_info.outputs.VERSION }} |
| - Release Date: ${{ steps.release_info.outputs.TIME }} |
| - Raw Changelog Data: ${{ steps.release_info.outputs.RAW_CHANGELOG }} |
|
|
| Execute the release notes generation process using the information provided. |
|
|
| When you are done, please output your thought process and the steps you took for future debugging purposes. |
|
|
| - name: 'Create Pull Request' |
| if: "steps.validate_version.outputs.CONTINUE == 'true'" |
| uses: 'peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c' |
| with: |
| token: '${{ secrets.GEMINI_CLI_ROBOT_GITHUB_PAT }}' |
| 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. |
|
|
| Related to |
| branch: 'changelog-${{ steps.release_info.outputs.VERSION }}' |
| base: 'main' |
| team-reviewers: 'gemini-cli-docs, gemini-cli-maintainers' |
| delete-branch: true |
|
|