|
8 | 8 | name: Preview Release |
9 | 9 | runs-on: ubuntu-latest |
10 | 10 | permissions: |
11 | | - contents: write # Required for semantic-release to verify git push (even in dry-run mode) |
| 11 | + contents: write |
12 | 12 | pull-requests: write |
13 | 13 |
|
14 | 14 | steps: |
@@ -101,13 +101,16 @@ jobs: |
101 | 101 | NEW_VERSION=$(echo "$OUTPUT" | grep -Eo "The next release version is [0-9]+\.[0-9]+\.[0-9]+" | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+" || echo "") |
102 | 102 | RELEASE_TYPE=$(echo "$OUTPUT" | grep -Eo "Analysis of [0-9]+ commits complete: [a-z]+ release" | grep -Eo "(major|minor|patch) release" | sed 's/ release//' || echo "") |
103 | 103 |
|
| 104 | + # Extract release notes (everything after "Release note for version") |
| 105 | + RELEASE_NOTES=$(echo "$OUTPUT" | sed -n '/Release note for version/,$p' | tail -n +2 || echo "") |
| 106 | +
|
104 | 107 | # Save to outputs |
105 | 108 | echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT |
106 | 109 | echo "release_type=$RELEASE_TYPE" >> $GITHUB_OUTPUT |
107 | 110 |
|
108 | | - # Save full output for comment |
109 | | - echo "full_output<<EOF" >> $GITHUB_OUTPUT |
110 | | - echo "$OUTPUT" >> $GITHUB_OUTPUT |
| 111 | + # Save release notes for comment |
| 112 | + echo "release_notes<<EOF" >> $GITHUB_OUTPUT |
| 113 | + echo "$RELEASE_NOTES" >> $GITHUB_OUTPUT |
111 | 114 | echo "EOF" >> $GITHUB_OUTPUT |
112 | 115 |
|
113 | 116 | - name: Display Preview |
@@ -135,41 +138,55 @@ jobs: |
135 | 138 | const newVersion = '${{ steps.semantic.outputs.new_version }}'; |
136 | 139 | const releaseType = '${{ steps.semantic.outputs.release_type }}'; |
137 | 140 |
|
| 141 | + const releaseNotes = `${{ steps.semantic.outputs.release_notes }}`; |
| 142 | +
|
138 | 143 | let body; |
139 | 144 | if (newVersion) { |
140 | 145 | body = `## Release Preview |
141 | 146 |
|
142 | | - **Version:** \`v${newVersion}\` |
143 | | - **Release Type:** \`${releaseType}\` |
144 | | - **Status:** Release will be published when merged to main |
| 147 | + **Version:** \`v${newVersion}\` |
| 148 | + **Release Type:** \`${releaseType}\` |
| 149 | + **Status:** Release will be published when merged to main |
145 | 150 |
|
146 | | - <details> |
147 | | - <summary> View semantic-release analysis</summary> |
| 151 | + --- |
148 | 152 |
|
149 | | - \`\`\` |
150 | | - ${{ steps.semantic.outputs.full_output }} |
151 | | - \`\`\` |
152 | | - </details> |
| 153 | + ### Release Notes |
153 | 154 |
|
154 | | - --- |
155 | | - *This preview is generated by semantic-release dry-run mode*`; |
156 | | - } else { |
157 | | - body = `## Release Preview |
| 155 | + ${releaseNotes} |
158 | 156 |
|
159 | | - **Status:** No release will be published |
160 | | - **Reason:** No relevant changes detected |
| 157 | + --- |
161 | 158 |
|
162 | | - <details> |
163 | | - <summary> View semantic-release analysis</summary> |
| 159 | + <details> |
| 160 | + <summary> View full semantic-release log</summary> |
164 | 161 |
|
165 | | - \`\`\` |
166 | | - ${{ steps.semantic.outputs.full_output }} |
167 | | - \`\`\` |
168 | | - </details> |
| 162 | + \`\`\` |
| 163 | + ${{ steps.semantic.outputs.full_output }} |
| 164 | + \`\`\` |
| 165 | + </details> |
169 | 166 |
|
170 | | - --- |
171 | | - *This preview is generated by semantic-release dry-run mode*`; |
172 | | - } |
| 167 | + --- |
| 168 | +
|
| 169 | + *This preview is generated by [semantic-release](https://github.com/semantic-release/semantic-release) dry-run mode*`; |
| 170 | + } else { |
| 171 | + body = `## Release Preview |
| 172 | +
|
| 173 | + **Status:** No release will be published |
| 174 | + **Reason:** No relevant changes detected |
| 175 | +
|
| 176 | + --- |
| 177 | +
|
| 178 | + <details> |
| 179 | + <summary> View full semantic-release log</summary> |
| 180 | +
|
| 181 | + \`\`\` |
| 182 | + ${{ steps.semantic.outputs.full_output }} |
| 183 | + \`\`\` |
| 184 | + </details> |
| 185 | +
|
| 186 | + --- |
| 187 | +
|
| 188 | + *This preview is generated by [semantic-release](https://github.com/semantic-release/semantic-release) dry-run mode*`; |
| 189 | + } |
173 | 190 |
|
174 | 191 | // Find existing comment |
175 | 192 | const { data: comments } = await github.rest.issues.listComments({ |
|
0 commit comments