53 строки
1.8 KiB
YAML
53 строки
1.8 KiB
YAML
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/\/*/} > /tmp/changelog.txt 2>&1
|
|
|
|
- name: 'Add changelog'
|
|
uses: actions/github-script@v6.4.1
|
|
with:
|
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
script: |
|
|
const fs = require('fs');
|
|
const changelog_message = fs.readFileSync('/tmp/changelog.txt', 'utf8');
|
|
// 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]')
|
|
if (changelogComment)
|
|
commentId = changelogComment.id
|
|
})
|
|
if (commentId == "") {
|
|
github.rest.issues.createComment({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
issue_number: context.issue.number,
|
|
body: changelog_message
|
|
})
|
|
} else {
|
|
github.rest.issues.updateComment({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
comment_id: commentId,
|
|
body: changelog_message
|
|
})
|
|
}
|