@@ -3,17 +3,43 @@ name: Build and release artifacts
3
3
on :
4
4
workflow_dispatch :
5
5
push :
6
- branches :
7
- # - main
8
- - none
9
- paths-ignore :
10
- - README.md
6
+ tags :
7
+ - " *"
8
+ # branches:
9
+ # - main
10
+ # paths-ignore:
11
+ # - README.md
11
12
12
13
permissions :
13
14
contents : write
14
15
15
16
jobs :
16
- build :
17
+ prepare :
18
+ name : Prepare release
19
+ runs-on : ubuntu-latest
20
+ outputs :
21
+ tag_name : ${{ steps.release_info.outputs.tag_name }}
22
+ release_name : ${{ steps.release_info.outputs.release_name }}
23
+ steps :
24
+ # If it's a nightly release, tag with the release time. If the tag is `main`, we want to use
25
+ # `latest` as the tag name. Else, use the tag name as is.
26
+ - name : Compute release name and tag
27
+ id : release_info
28
+ run : |
29
+ # IS_NIGHTLY is currently unused
30
+ if [[ $IS_NIGHTLY ]]; then
31
+ echo "tag_name=nightly-${GITHUB_SHA}" >> $GITHUB_OUTPUT
32
+ echo "release_name=Nightly ($(date '+%Y-%m-%d'))" >> $GITHUB_OUTPUT
33
+ elif [[ "${GITHUB_REF_NAME}" == "main" ]]; then
34
+ echo "tag_name=latest" >> $GITHUB_OUTPUT
35
+ echo "release_name=Latest Release" >> $GITHUB_OUTPUT
36
+ else
37
+ echo "tag_name=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT
38
+ echo "release_name=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT
39
+ fi
40
+
41
+ build-and-release :
42
+ needs : prepare
17
43
runs-on : ${{ matrix.os }}
18
44
19
45
strategy :
37
63
38
64
- uses : actions/checkout@v4
39
65
40
- - name : Set release version
41
- id : version
42
- run : echo "VERSION=$(cat version.txt)" >> "$GITHUB_OUTPUT"
43
-
44
- - name : Print release version
45
- env :
46
- VERSION : ${{ steps.version.outputs.VERSION }}
47
- run : echo "Current release is $VERSION"
48
-
49
66
- name : Install ninja
50
67
if : matrix.os == 'ubuntu-latest'
51
68
run : |
@@ -72,12 +89,16 @@ jobs:
72
89
- name : Package toolchain
73
90
run : ./package.sh
74
91
92
+ - name : Rename artifact
93
+ run : mv ${{ env.ARTIFACT_NAME }}.tar.gz ${{ env.ARTIFACT_NAME }}-${{ needs.prepare.outputs.tag_name }}.tar.gz
94
+
75
95
- name : Release
76
96
uses : ncipollo/release-action@v1
77
97
with :
78
98
draft : true
79
- tag : " v${{ steps.version.outputs.VERSION }}"
80
- artifacts : " ${{ env.ARTIFACT_NAME }}.tar.gz"
99
+ name : ${{ needs.prepare.outputs.release_name }}
100
+ tag : " ${{ needs.prepare.outputs.tag_name }}"
101
+ artifacts : " ${{ env.ARTIFACT_NAME }}-${{ needs.prepare.outputs.tag_name }}.tar.gz"
81
102
allowUpdates : true
82
103
omitBodyDuringUpdate : true
83
104
omitDraftDuringUpdate : true
0 commit comments