/
/
/
1name: 'Generate Release Notes'
2description: 'Generate complete release notes with PR categorization, frontend changes, and merged contributors'
3inputs:
4 version:
5 description: 'The version being released'
6 required: true
7 previous-tag:
8 description: 'The previous release tag to compare against'
9 required: false
10 default: ''
11 branch:
12 description: 'The branch being released from'
13 required: true
14 channel:
15 description: 'The release channel (stable, beta, nightly)'
16 required: true
17 github-token:
18 description: 'GitHub token for API access'
19 required: true
20 important-notes:
21 description: 'Important notes to display at the top (breaking changes, critical info, etc.)'
22 required: false
23 default: ''
24outputs:
25 release-notes:
26 description: 'The complete generated release notes including frontend changes'
27 value: ${{ steps.generate.outputs.release-notes }}
28runs:
29 using: 'composite'
30 steps:
31 - name: Set up Python
32 uses: actions/[email protected]
33 with:
34 python-version: '3.12'
35
36 - name: Install dependencies
37 shell: bash
38 run: |
39 pip install PyGithub PyYAML
40
41 - name: Generate complete release notes
42 id: generate
43 shell: bash
44 env:
45 GITHUB_TOKEN: ${{ inputs.github-token }}
46 VERSION: ${{ inputs.version }}
47 PREVIOUS_TAG: ${{ inputs.previous-tag }}
48 BRANCH: ${{ inputs.branch }}
49 CHANNEL: ${{ inputs.channel }}
50 GITHUB_REPOSITORY: ${{ github.repository }}
51 GITHUB_SERVER_URL: ${{ github.server_url }}
52 IMPORTANT_NOTES: ${{ inputs.important-notes }}
53 run: |
54 chmod +x ${{ github.action_path }}/generate_notes.py
55 python3 ${{ github.action_path }}/generate_notes.py
56