[actions] Add GitHub action to compute the changelog for maestro bumps. (#14984)
And add that changelog as a comment to the PR. If there already is a comment with a changelog, then update that comment instead.
This commit is contained in:
Родитель
cec44107a5
Коммит
b56184b60d
|
@ -0,0 +1,59 @@
|
|||
name: Add changelog for Maestro bump
|
||||
on: pull_request
|
||||
|
||||
jobs:
|
||||
add-changelog:
|
||||
name: Add changelog
|
||||
runs-on: ubuntu-latest
|
||||
if: github.actor == 'dotnet-maestro[bot]'
|
||||
|
||||
steps:
|
||||
- name: 'Compute changelog'
|
||||
run: |
|
||||
set -exo pipefail
|
||||
git clone https://github.com/spouliot/dotnet-tools
|
||||
cd dotnet-tools/changelog
|
||||
dotnet run https://github.com/$GITHUB_REPOSITORY/pull/${GITHUB_REF_NAME/\/*/} > changelog.txt 2>&1
|
||||
|
||||
# need to replace newlines with actual "\n"
|
||||
rm -f changelog2.txt
|
||||
echo "CHANGELOG_MESSAGE<<EOF" >> changelog2.txt
|
||||
cat changelog.txt | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/\\n/g' >> changelog2.txt
|
||||
echo EOF >> changelog2.txt
|
||||
cat changelog2.txt
|
||||
|
||||
# export the changelog message
|
||||
cat changelog2.txt >> $GITHUB_ENV
|
||||
|
||||
- name: 'Add changelog'
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
script: |
|
||||
// check if we've already added a changelog to this PR, and if so, update that comment, otherwise add a new comment
|
||||
var commentId = ""
|
||||
await github.paginate (github.rest.issues.listComments,
|
||||
{
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.issue.number
|
||||
}).then ((comments) =>
|
||||
{
|
||||
const changelogComment = comments.find(comment => comment.body.includes (".net ChangeLog for") && comment.user.login == 'github-actions[bot]')
|
||||
commentId = changelogComment.id
|
||||
})
|
||||
if (commentId == "") {
|
||||
github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.issue.number,
|
||||
body: '${{ env.CHANGELOG_MESSAGE }}'
|
||||
})
|
||||
} else {
|
||||
github.rest.issues.updateComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
comment_id: commentId,
|
||||
body: '${{ env.CHANGELOG_MESSAGE }}'
|
||||
})
|
||||
}
|
Загрузка…
Ссылка в новой задаче