Skip to content

Commit 61743b4

Browse files
authored
Merge pull request #823 from EMResearch/release-automation
trying to improve automation of release
2 parents aacc1b1 + 51354c0 commit 61743b4

File tree

4 files changed

+237
-50
lines changed

4 files changed

+237
-50
lines changed

.github/workflows/ci.yml

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
name: CI
22

3-
on: [push]
3+
on:
4+
push:
5+
branches:
6+
- "**"
7+
tags-ignore:
8+
- '**'
49

510
env:
611
evomaster-version: 1.6.2
@@ -27,14 +32,14 @@ jobs:
2732
runs-on: ubuntu-latest
2833
steps:
2934
# Checkout code
30-
- uses: actions/checkout@v2
35+
- uses: actions/checkout@v4
3136
# Build/test for JDK
3237
- name: Setup JDK ${{env.build-jdk}}
3338
uses: actions/setup-java@v1
3439
with:
3540
java-version: ${{env.build-jdk}}
3641
- name: Cache Maven packages
37-
uses: actions/cache@v2
42+
uses: actions/cache@v3
3843
with:
3944
path: ~/.m2
4045
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
@@ -44,7 +49,7 @@ jobs:
4449
env:
4550
CI_env: GithubAction
4651
- name: Upload evomaster.jar
47-
uses: actions/upload-artifact@v2
52+
uses: actions/upload-artifact@v3
4853
with:
4954
name: evomaster.jar
5055
path: core/target/evomaster.jar
@@ -79,13 +84,13 @@ jobs:
7984
base-build-mac:
8085
runs-on: macos-latest
8186
steps:
82-
- uses: actions/checkout@v2
87+
- uses: actions/checkout@v4
8388
- name: Setup JDK ${{env.latest-jdk}}
8489
uses: actions/setup-java@v1
8590
with:
8691
java-version: ${{env.latest-jdk}}
8792
- name: Cache Maven packages
88-
uses: actions/cache@v2
93+
uses: actions/cache@v3
8994
with:
9095
path: ~/.m2
9196
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
@@ -98,13 +103,13 @@ jobs:
98103
base-build-windows:
99104
runs-on: windows-latest
100105
steps:
101-
- uses: actions/checkout@v2
106+
- uses: actions/checkout@v4
102107
- name: Setup JDK ${{env.latest-jdk}}
103108
uses: actions/setup-java@v1
104109
with:
105110
java-version: ${{env.latest-jdk}}
106111
- name: Cache Maven packages
107-
uses: actions/cache@v2
112+
uses: actions/cache@v3
108113
with:
109114
path: ~/.m2
110115
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
@@ -123,13 +128,13 @@ jobs:
123128
# runs-on: windows-latest
124129
runs-on: ubuntu-latest
125130
steps:
126-
- uses: actions/checkout@v2
131+
- uses: actions/checkout@v4
127132
- name: Setup JDK ${{env.latest-jdk}}
128133
uses: actions/setup-java@v1
129134
with:
130135
java-version: ${{env.latest-jdk}}
131136
- name: Cache Maven packages
132-
uses: actions/cache@v2
137+
uses: actions/cache@v3
133138
with:
134139
path: ~/.m2
135140
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
@@ -145,7 +150,7 @@ jobs:
145150
needs: full-build-base
146151
runs-on: ubuntu-latest
147152
steps:
148-
- uses: actions/checkout@v2
153+
- uses: actions/checkout@v4
149154
# Build/test for JavaScript
150155
- name: Use Node.js
151156
uses: actions/setup-node@v1
@@ -168,7 +173,7 @@ jobs:
168173
with:
169174
java-version: ${{env.build-jdk}}
170175
- name: Download fat jar
171-
uses: actions/download-artifact@v2
176+
uses: actions/download-artifact@v3
172177
with:
173178
name: evomaster.jar
174179
path: core/target
@@ -216,21 +221,21 @@ jobs:
216221
needs: full-build-base
217222
runs-on: windows-latest
218223
steps:
219-
- uses: actions/checkout@v2
224+
- uses: actions/checkout@4
220225
- name: Setup JDK ${{env.release-jdk}}
221226
uses: actions/setup-java@v1
222227
with:
223228
java-version: ${{env.release-jdk}}
224229
- name: Download fat jar
225-
uses: actions/download-artifact@v2
230+
uses: actions/download-artifact@v3
226231
with:
227232
name: evomaster.jar
228233
path: core/target
229234
- name: Build installation file
230235
shell: bash
231236
run: bash makeExecutable.sh WINDOWS
232237
- name: Upload installation file
233-
uses: actions/upload-artifact@v2
238+
uses: actions/upload-artifact@v3
234239
with:
235240
name: evomaster.msi
236241
path: release/evomaster-${{env.evomaster-version}}.msi
@@ -241,21 +246,21 @@ jobs:
241246
needs: full-build-base
242247
runs-on: macos-latest
243248
steps:
244-
- uses: actions/checkout@v2
249+
- uses: actions/checkout@v3
245250
- name: Setup JDK ${{env.release-jdk}}
246251
uses: actions/setup-java@v1
247252
with:
248253
java-version: ${{env.release-jdk}}
249254
- name: Download fat jar
250-
uses: actions/download-artifact@v2
255+
uses: actions/download-artifact@v3
251256
with:
252257
name: evomaster.jar
253258
path: core/target
254259
- name: Build installation file
255260
shell: bash
256261
run: bash makeExecutable.sh OSX
257262
- name: Upload installation file
258-
uses: actions/upload-artifact@v2
263+
uses: actions/upload-artifact@v3
259264
with:
260265
name: evomaster.dmg
261266
path: release/evomaster-${{env.evomaster-version}}.dmg
@@ -266,21 +271,21 @@ jobs:
266271
needs: full-build-base
267272
runs-on: ubuntu-latest
268273
steps:
269-
- uses: actions/checkout@v2
274+
- uses: actions/checkout@v4
270275
- name: Setup JDK ${{env.release-jdk}}
271276
uses: actions/setup-java@v1
272277
with:
273278
java-version: ${{env.release-jdk}}
274279
- name: Download fat jar
275-
uses: actions/download-artifact@v2
280+
uses: actions/download-artifact@v3
276281
with:
277282
name: evomaster.jar
278283
path: core/target
279284
- name: Build installation file
280285
shell: bash
281286
run: bash makeExecutable.sh DEBIAN
282287
- name: Upload installation file
283-
uses: actions/upload-artifact@v2
288+
uses: actions/upload-artifact@v3
284289
with:
285290
name: evomaster.deb
286291
path: release/evomaster_${{env.evomaster-version}}-1_amd64.deb

.github/workflows/release.yml

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
name: Release on GitHub
2+
3+
4+
## Run only when we push a tag. See "docs/release.md" instructions
5+
on:
6+
push:
7+
tags:
8+
- "v*"
9+
10+
env:
11+
evomaster-version: 1.6.2
12+
jdk: 17
13+
retention-days: 1
14+
## Doesn't work, ie, use env in env
15+
# installer-windows: evomaster-${evomaster-version}.msi
16+
# installer-osx: evomaster-${evomaster-version}.dmg
17+
# installer-debian: evomaster_${evomaster-version}-1_amd64.deb
18+
19+
jobs:
20+
21+
build-base:
22+
runs-on: ubuntu-latest
23+
steps:
24+
- uses: actions/checkout@v4
25+
- name: Setup JDK ${{env.jdk}}
26+
uses: actions/setup-java@v1
27+
with:
28+
java-version: ${{env.jdk}}
29+
- name: Cache Maven packages
30+
uses: actions/cache@v3
31+
with:
32+
path: ~/.m2
33+
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
34+
restore-keys: ${{ runner.os }}-m2
35+
- name: Build with Maven
36+
# Don't run any test, as build should had already been verified (and it takes hours...)
37+
run: mvn clean verify -DskipTests
38+
env:
39+
CI_env: GithubAction
40+
- name: Upload evomaster.jar
41+
uses: actions/upload-artifact@v3
42+
with:
43+
name: evomaster.jar
44+
path: core/target/evomaster.jar
45+
retention-days: ${{env.retention-days}}
46+
if-no-files-found: error
47+
48+
installer-for-windows:
49+
needs: build-base
50+
runs-on: windows-latest
51+
steps:
52+
- uses: actions/checkout@v4
53+
- name: Setup JDK ${{env.jdk}}
54+
uses: actions/setup-java@v1
55+
with:
56+
java-version: ${{env.jdk}}
57+
- name: Download fat jar
58+
uses: actions/download-artifact@v3
59+
with:
60+
name: evomaster.jar
61+
path: core/target
62+
- name: Build installation file
63+
shell: bash
64+
run: bash makeExecutable.sh WINDOWS
65+
- name: Upload installation file
66+
uses: actions/upload-artifact@v3
67+
with:
68+
name: evomaster.msi
69+
path: release/evomaster-${{env.evomaster-version}}.msi
70+
retention-days: ${{env.retention-days}}
71+
if-no-files-found: error
72+
73+
installer-for-osx:
74+
needs: build-base
75+
runs-on: macos-latest
76+
steps:
77+
- uses: actions/checkout@v4
78+
- name: Setup JDK ${{env.jdk}}
79+
uses: actions/setup-java@v1
80+
with:
81+
java-version: ${{env.jdk}}
82+
- name: Download fat jar
83+
uses: actions/download-artifact@v3
84+
with:
85+
name: evomaster.jar
86+
path: core/target
87+
- name: Build installation file
88+
shell: bash
89+
run: bash makeExecutable.sh OSX
90+
- name: Upload installation file
91+
uses: actions/upload-artifact@v3
92+
with:
93+
name: evomaster.dmg
94+
path: release/evomaster-${{env.evomaster-version}}.dmg
95+
retention-days: ${{env.retention-days}}
96+
if-no-files-found: error
97+
98+
installer-for-debian:
99+
needs: build-base
100+
runs-on: ubuntu-latest
101+
steps:
102+
- uses: actions/checkout@v4
103+
- name: Setup JDK ${{env.jdk}}
104+
uses: actions/setup-java@v1
105+
with:
106+
java-version: ${{env.jdk}}
107+
- name: Download fat jar
108+
uses: actions/download-artifact@v3
109+
with:
110+
name: evomaster.jar
111+
path: core/target
112+
- name: Build installation file
113+
shell: bash
114+
run: bash makeExecutable.sh DEBIAN
115+
- name: Upload installation file
116+
uses: actions/upload-artifact@v3
117+
with:
118+
name: evomaster.deb
119+
path: release/evomaster_${{env.evomaster-version}}-1_amd64.deb
120+
retention-days: ${{env.retention-days}}
121+
if-no-files-found: error
122+
123+
tagged-release:
124+
needs: [installer-for-debian,installer-for-windows,installer-for-osx]
125+
name: "Tagged Release"
126+
runs-on: "ubuntu-latest"
127+
128+
steps:
129+
130+
- name: Download fat jar
131+
uses: actions/download-artifact@v3
132+
with:
133+
name: evomaster.jar
134+
- name: Download
135+
uses: actions/download-artifact@v3
136+
with:
137+
name: evomaster.deb
138+
- name: Download
139+
uses: actions/download-artifact@v3
140+
with:
141+
name: evomaster.dmg
142+
- name: Download
143+
uses: actions/download-artifact@v3
144+
with:
145+
name: evomaster.msi
146+
147+
148+
## Doesn't seem any longer mantained... plus usability issues
149+
# - uses: "marvinpinto/action-automatic-releases@latest"
150+
# with:
151+
# repo_token: "${{ secrets.GITHUB_TOKEN }}"
152+
# prerelease: false
153+
# files: |
154+
# evomaster.jar
155+
# ${{env.installer-windows}}
156+
# ${{env.installer-osx}}
157+
# ${{env.installer-debian}}
158+
159+
- name: Release
160+
uses: softprops/action-gh-release@v1
161+
with:
162+
prerelease: false
163+
draft: false
164+
fail_on_unmatched_files: true
165+
files: |
166+
evomaster.jar
167+
evomaster-${{env.evomaster-version}}.msi
168+
evomaster-${{env.evomaster-version}}.dmg
169+
evomaster_${{env.evomaster-version}}-1_amd64.deb
170+

0 commit comments

Comments
 (0)