Skip to content

Commit 0b771ac

Browse files
committed
Create Release on Milestone Close
1 parent fbeffa9 commit 0b771ac

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

.github/workflows/craft-release.yaml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Create Release
2+
env:
3+
MILESTONE: ${{ github.event.milestone.title }}
4+
on:
5+
milestone:
6+
types:
7+
- closed
8+
jobs:
9+
wait-for-status-checks:
10+
name: Wait for status checks
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v1
14+
- run: sleep 13
15+
- name: 'Wait for status checks'
16+
id: waitforstatuschecks
17+
uses: "WyriHaximus/github-action-wait-for-status@master"
18+
with:
19+
ignoreActions: "Wait for status checks"
20+
checkInterval: 5
21+
env:
22+
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
23+
- id: generate-version-strategy
24+
if: steps.waitforstatuschecks.outputs.status != 'success'
25+
name: Fail
26+
run: exit 1
27+
generate-changelog:
28+
name: Generate Changelog
29+
needs:
30+
- wait-for-status-checks
31+
runs-on: ubuntu-latest
32+
outputs:
33+
changelog: ${{ steps.changelog.outputs.changelog }}
34+
steps:
35+
- name: Generate changelog
36+
uses: WyriHaximus/github-action-jwage-changelog-generator@v1
37+
id: changelog
38+
env:
39+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40+
with:
41+
milestone: ${{ env.MILESTONE }}
42+
- name: Show changelog
43+
run: echo "${CHANGELOG}"
44+
env:
45+
CHANGELOG: ${{ steps.changelog.outputs.changelog }}
46+
create-release:
47+
name: Create Release
48+
needs:
49+
- generate-changelog
50+
runs-on: ubuntu-latest
51+
steps:
52+
- uses: actions/checkout@v1
53+
env:
54+
CHANGELOG: ${{ needs.generate-changelog.outputs.changelog }}
55+
- run: |
56+
echo -e "${MILESTONE_DESCRIPTION}\r\n\r\n${CHANGELOG}" > release-${{ env.MILESTONE }}-release-message.md
57+
cat release-${{ env.MILESTONE }}-release-message.md
58+
release_message=$(cat release-${{ env.MILESTONE }}-release-message.md)
59+
release_message="${release_message//'%'/'%25'}"
60+
release_message="${release_message//$'\n'/'%0A'}"
61+
release_message="${release_message//$'\r'/'%0D'}"
62+
echo "::set-output name=release_message::$release_message"
63+
id: releasemessage
64+
env:
65+
MILESTONE_DESCRIPTION: ${{ github.event.milestone.description }}
66+
CHANGELOG: ${{ needs.generate-changelog.outputs.changelog }}
67+
- name: Create Reference Release with Changelog
68+
if: ${{ matrix.version == env.MILESTONE }}
69+
uses: fleskesvor/create-release@feature/support-target-commitish
70+
env:
71+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
72+
with:
73+
tag_name: ${{ env.MILESTONE }}
74+
release_name: ${{ env.MILESTONE }}
75+
body: ${{ steps.releasemessage.outputs.release_message }}
76+
draft: false
77+
prerelease: false

0 commit comments

Comments
 (0)