1
1
name : Release
2
2
on :
3
- workflow_call :
4
- inputs :
5
- tag :
6
- required : true
7
- type : string
8
- secrets :
9
- token :
10
- required : true
3
+ push :
4
+ tags :
5
+ - " *"
11
6
jobs :
12
- page :
13
- name : Release Page
7
+ publish :
8
+ name : Publish
14
9
runs-on : ubuntu-latest
10
+ timeout-minutes : 60
15
11
steps :
16
12
- uses : actions/checkout@v4
17
- - name : Create release page
13
+ - name : Download artifacts
14
+ run : |
15
+ workflows=(cmake.yml document.yml package.yml)
16
+ for workflow in "${workflows[@]}"; do
17
+ run_id=""
18
+ while true; do
19
+ echo "Waiting for run to start ${workflow}..."
20
+ run_id=$(gh run list \
21
+ --branch ${GITHUB_REF_NAME} \
22
+ --jq '.[].databaseId' \
23
+ --json databaseId \
24
+ --limit 1 \
25
+ --workflow ${workflow})
26
+ if [ -n "${run_id}" ]; then
27
+ break
28
+ fi
29
+ sleep 300
30
+ done
31
+ gh run watch \
32
+ --exit-status \
33
+ --interval 300 \
34
+ ${run_id}
35
+ gh run download ${run_id} \
36
+ --dir release-artifacts \
37
+ --pattern "release-*"
38
+ done
39
+ env :
40
+ GH_TOKEN : ${{ github.token }}
41
+ - name : Extract release note
18
42
run : |
19
43
(cd doc/source/news && \
20
44
ruby \
@@ -40,21 +64,14 @@ jobs:
40
64
major_version=${version%%.*}
41
65
version_hyphen=$(echo ${version} | tr . -)
42
66
echo " * [Japanese](https://groonga.org/ja/docs/news/${major_version}.html#release-${version_hyphen})" >> release-note.md
67
+ - name : Publish release page
68
+ run : |
43
69
title="$(head -n1 release-note.md | sed -e 's/^## //')"
44
70
tail -n +2 release-note.md > release-note-without-version.md
45
71
gh release create "${tag}" \
46
72
--discussion-category Releases \
47
73
--notes-file release-note-without-version.md \
48
- --title "${title}" || :
49
- env :
50
- GH_TOKEN : ${{ secrets.token }}
51
- - uses : actions/download-artifact@v4
52
- with :
53
- path : artifacts
54
- pattern : release-*
55
- merge-multiple : true
56
- - name : Upload to release
57
- run : |
58
- gh release upload "${{ inputs.tag }}" artifacts/*
74
+ --title "${title}" \
75
+ release-artifacts/*/*
59
76
env :
60
- GH_TOKEN : ${{ secrets .token }}
77
+ GH_TOKEN : ${{ github .token }}
0 commit comments