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