11
22
3- name : release
3+ name : release
4+
5+ on :
6+ create :
7+ tags :
8+ - ' *'
9+
10+ jobs :
11+ create_binaries :
12+ if : (github.event_name == 'create' && github.event.ref_type == 'tag')
13+ runs-on : ubuntu-latest
14+ steps :
15+ - name : ' Set up JDK'
16+ uses : actions/setup-java@v3
17+ with :
18+ distribution : zulu
19+ java-version : 11
20+
21+ - name : ' Prepare branch name'
22+ run : >
23+ echo "refName=${GITHUB_REF##*/}" >> $GITHUB_ENV
24+ - name : ' Checkout relevant branch'
25+ uses : actions/checkout@v3
26+ with :
27+ ref : ${{ env.refName }}
28+
29+ - name : ' Cache Maven packages'
30+ uses : actions/cache@v3
31+ with :
32+ path : ~/.m2
33+ key : ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}-${{ github.sha }}
34+
35+ - name : ' Create distribution'
36+ run : >
37+ mvn -B --file pom.xml -Pnative -DskipTests -pl iot.technology:toolkit-app package -am
38+
39+ - name : ' Upload build artifact'
40+ uses : actions/upload-artifact@v2
41+ with :
42+ name : artifacts
43+ path : toolkit-app/target/*.zip
44+
45+ create_native_binaries :
46+ if : (github.event_name == 'create' && github.event.ref_type == 'tag')
47+ name : ' Build with Graal on ${{ matrix.os }}'
48+ strategy :
49+ fail-fast : true
50+ matrix :
51+ os : [ ubuntu-latest, macos-latest, windows-latest ]
52+ runs-on : ${{ matrix.os }}
53+
54+ steps :
55+ - name : ' Prepare git'
56+ run : git config --global core.autocrlf false
57+
58+ - name : ' Prepare branch name'
59+ run : >
60+ echo "refName=${GITHUB_REF##*/}" >> $GITHUB_ENV
61+ - name : ' Checkout relevant branch'
62+ uses : actions/checkout@v3
63+ with :
64+ ref : ${{ env.refName }}
65+
66+ - name : Install upx
67+ run : sudo apt-get install upx
68+ if : ${{ runner.os == 'Linux' }}
69+
70+ - name : Install upx
71+ run : brew install upx
72+ if : ${{ runner.os == 'macOS' }}
73+
74+ - name : Install upx
75+ run : choco install upx
76+ if : ${{ runner.os == 'Windows' }}
77+
78+ - name : ' Set up Graal'
79+ uses : graalvm/setup-graalvm@v1
80+ with :
81+ version : ' 22.2.0'
82+ java-version : ' 11'
83+ components : ' native-image'
84+ github-token : ${{ secrets.GITHUB_TOKEN }}
85+
86+ - name : ' Create distribution'
87+ run : >
88+ mvn -B --file pom.xml -Pnative -DskipTests -pl iot.technology:toolkit-app package -am
89+
90+ - name : ' Upload build artifact'
91+ uses : actions/upload-artifact@v2
92+ with :
93+ name : artifacts
94+ path : toolkit-app/target/*.zip
95+
96+ create_native_arm_binaries :
97+ if : (github.event_name == 'create' && github.event.ref_type == 'tag')
98+ name : ' Build with Graal on ${{ matrix.os }} ARM64'
99+ strategy :
100+ fail-fast : true
101+ matrix :
102+ os : [ linux ]
103+ runs-on :
104+ - self-hosted
105+ - ${{ matrix.os }}
106+ - ARM64
107+
108+ steps :
109+ - name : ' Prepare git'
110+ run : git config --global core.autocrlf false
111+
112+ - name : ' Prepare branch name'
113+ run : >
114+ echo "refName=${GITHUB_REF##*/}" >> $GITHUB_ENV
115+ - name : ' Checkout relevant branch'
116+ uses : actions/checkout@v3
117+ with :
118+ ref : ${{ env.refName }}
119+
120+ - name : ' Set up Graal'
121+ uses : graalvm/setup-graalvm@v1
122+ with :
123+ version : ' 22.2.0'
124+ java-version : ' 11'
125+ components : ' native-image'
126+ github-token : ${{ secrets.GITHUB_TOKEN }}
127+
128+ - name : ' Create distribution'
129+ run : >
130+ mvn -B --file pom.xml -Pnative -DskipTests -pl iot.technology:toolkit-app package -am
131+
132+ - name : ' Upload build artifact'
133+ uses : actions/upload-artifact@v2
134+ with :
135+ name : artifacts
136+ path : toolkit-app/target/*.zip
0 commit comments