1
+ name : Release
2
+
3
+ # Trigger the workflow only on tags
4
+ on :
5
+ push :
6
+ tags :
7
+ - ' v[0-9]+.[0-9]+.[0-9]+'
8
+
9
+
10
+ jobs :
11
+
12
+ draft_release :
13
+ name : Create draft release
14
+ runs-on : ubuntu-latest
15
+
16
+ outputs :
17
+ release_id : ${{ steps.create_draft_release.outputs.id }}
18
+ upload_url : ${{ steps.create_draft_release.outputs.upload_url }}
19
+
20
+ steps :
21
+ - name : Get version from tag
22
+ id : tag_name
23
+ run : echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
24
+
25
+ - uses : actions/checkout@v2
26
+
27
+ - name : Get Changelog Entry
28
+ id : changelog_reader
29
+ uses : mindsers/changelog-reader-action@v2
30
+ with :
31
+ version : ${{ env.RELEASE_VERSION }}
32
+ path : ./CHANGELOG.md
33
+
34
+ - name : Create draft release
35
+ id : create_draft_release
36
+ uses : actions/create-release@v1
37
+ env :
38
+ GITHUB_TOKEN : ${{ secrets.GH_API_PERSONAL_ACCESS_TOKEN }}
39
+ with :
40
+ tag_name : ${{ github.ref }}
41
+ release_name : ${{ github.ref }}
42
+ draft : true
43
+ prerelease : ${{ steps.changelog_reader.outputs.status == 'prereleased' }}
44
+ body : ${{ steps.changelog_reader.outputs.changes }}
45
+
46
+ - name : ZIP uncompiled universalJavaApplicationStub
47
+ run : |
48
+ echo "Zipping uncompiled script..."
49
+ zip --junk-paths universalJavaApplicationStub-uncompiled.zip src/universalJavaApplicationStub
50
+
51
+ - name : Upload release assets
52
+ uses : actions/upload-release-asset@v1
53
+ env :
54
+ GITHUB_TOKEN : ${{ secrets.GH_API_PERSONAL_ACCESS_TOKEN }}
55
+ with :
56
+ upload_url : ${{ steps.create_draft_release.outputs.upload_url }}
57
+ asset_name : universalJavaApplicationStub-v${{ env.RELEASE_VERSION }}-source.zip
58
+ asset_path : ./universalJavaApplicationStub-uncompiled.zip
59
+ asset_content_type : application/zip
60
+
61
+
62
+ compile :
63
+ name : Compile the stub on ${{ matrix.os }}
64
+ needs : draft_release # we need to know the upload URL
65
+ runs-on : ${{ matrix.os }}
66
+ strategy :
67
+ matrix :
68
+ os : [ macos-10.15 ] # macos-11.0
69
+
70
+ steps :
71
+ - uses : actions/checkout@v2
72
+
73
+ - name : Set env
74
+ run : echo "RELEASE_TAG=${GITHUB_REF:10}" >> $GITHUB_ENV
75
+
76
+ - name : Install shc via HomeBrew
77
+ run : |
78
+ brew install shc
79
+ shc -h
80
+
81
+ - name : Compile universalJavaApplicationStub
82
+ run : |
83
+ echo "Running shc..."
84
+ shc -r -f src/universalJavaApplicationStub
85
+
86
+ - name : ZIP universalJavaApplicationStub binary
87
+ run : |
88
+ echo "Zipping binary..."
89
+ mv src/universalJavaApplicationStub.x universalJavaApplicationStub
90
+ rm src/universalJavaApplicationStub.x.c
91
+ zip --junk-paths universalJavaApplicationStub-${{ matrix.os }}.zip universalJavaApplicationStub
92
+
93
+ - name : Upload release assets
94
+ uses : actions/upload-release-asset@v1
95
+ env :
96
+ GITHUB_TOKEN : ${{ secrets.GH_API_PERSONAL_ACCESS_TOKEN }}
97
+ with :
98
+ upload_url : ${{ needs.draft_release.outputs.upload_url }}
99
+ asset_name : universalJavaApplicationStub-${{ env.RELEASE_TAG }}-binary-${{ matrix.os }}.zip
100
+ asset_path : ./universalJavaApplicationStub-${{ matrix.os }}.zip
101
+ asset_content_type : application/zip
102
+
103
+
104
+ publish_release :
105
+ name : Publish drafted release
106
+ needs : [ draft_release, compile ]
107
+ runs-on : ubuntu-latest
108
+
109
+ steps :
110
+ - uses : eregon/publish-release@v1
111
+ env :
112
+ GITHUB_TOKEN : ${{ secrets.GH_API_PERSONAL_ACCESS_TOKEN }}
113
+ with :
114
+ release_id : ${{ needs.draft_release.outputs.release_id }}
0 commit comments