-
Notifications
You must be signed in to change notification settings - Fork 612
47 lines (45 loc) · 1.84 KB
/
add-release-note.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
name: Add Release Note
run-name: 'Add Release Note (${{ inputs.type }}): ${{ inputs.message }}'
on:
workflow_dispatch:
inputs:
type:
description: The type of release note (must be blurb, feature or bug)
required: true
type: string
message:
description: The release note
required: true
type: string
jobs:
add-release-note:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Configure Git author
uses: actions/github-script@v7
with:
script: |
const username = '${{ github.triggering_actor }}'
const fallBackEmail = `${username.replace('[bot]', '-bot')}@users.noreply.github.com`
const { data: { name, email } } = await github.rest.users.getByUsername({ username })
core.exportVariable('GIT_AUTHOR_NAME', name || username)
core.exportVariable('GIT_AUTHOR_EMAIL', email || fallBackEmail)
core.exportVariable('GIT_COMMITTER_NAME', name || username)
core.exportVariable('GIT_COMMITTER_EMAIL', email || fallBackEmail)
- name: Partial & sparse clone
run: |
git clone --depth=1 --filter=blob:none --no-checkout --single-branch \
-b ${{ github.ref_name }} https://github.com/${{ github.repository }} . &&
# need only `add-release-notes.js` and `ReleaseNotes.md`, really
git sparse-checkout set . &&
git checkout
- name: Add release note
env:
TYPE: ${{ github.event.inputs.type }}
MESSAGE: ${{ github.event.inputs.message }}
run: node ./add-release-note.js --commit "$TYPE" "$MESSAGE"
- name: Push updates
run: |
git -c http.extraHeader="Authorization: Basic $(printf 'x-access-token:${{ secrets.GITHUB_TOKEN }}' | base64 -w 0)" push origin HEAD