14
14
build :
15
15
strategy :
16
16
matrix :
17
- os : [ubuntu-22.04, macos-13, windows-latest]
17
+ os : [ubuntu-22.04, ubuntu-22.04-arm, macos-13, macos-14, windows-latest]
18
+ include :
19
+ - os : ubuntu-22.04
20
+ arch : x86_64
21
+ - os : ubuntu-22.04-arm
22
+ arch : aarch64
23
+ - os : macos-13
24
+ arch : x86_64
25
+ - os : macos-14
26
+ arch : aarch64
27
+ - os : windows-latest
28
+ arch : x86_64
18
29
fail-fast : false
19
30
runs-on : ${{ matrix.os }}
20
31
steps :
27
38
java-version : ' 21'
28
39
distribution : ' adopt'
29
40
cache : gradle
30
- - name : Build with Gradle
41
+ - name : Build with Gradle with tests
42
+ if : ${{ matrix.arch == 'x86_64' }}
31
43
run : ./gradlew build --stacktrace --scan
44
+ - name : Build with Gradle without tests
45
+ if : ${{ matrix.arch == 'aarch64' }}
46
+ run : ./gradlew build --stacktrace --scan -x test
32
47
- uses : actions/upload-artifact@v4
33
48
if : failure()
34
49
with :
42
57
path : .localnet
43
58
overwrite : true
44
59
- name : Install dependencies
45
- if : ${{ matrix.os == 'ubuntu-22.04' }}
60
+ if : ${{ matrix.os == 'ubuntu-22.04' || matrix.os == 'ubuntu-22.04-arm' }}
46
61
run : |
47
62
sudo apt-get update
48
63
sudo apt-get install -y rpm libfuse2 flatpak flatpak-builder appstream
@@ -53,15 +68,22 @@ jobs:
53
68
Invoke-WebRequest -Uri 'https://github.com/wixtoolset/wix3/releases/download/wix314rtm/wix314.exe' -OutFile wix314.exe
54
69
.\wix314.exe /quiet /norestart
55
70
shell : powershell
56
- - name : Build Haveno Installer
71
+ - name : Build Haveno Installer with tests
72
+ if : ${{ matrix.arch == 'x86_64' }}
57
73
run : |
58
74
./gradlew clean build --refresh-keys --refresh-dependencies
59
75
./gradlew packageInstallers
60
76
working-directory : .
77
+ - name : Build Haveno Installer without tests
78
+ if : ${{ matrix.arch == 'aarch64' }}
79
+ run : |
80
+ ./gradlew clean build --refresh-keys --refresh-dependencies -x test
81
+ ./gradlew packageInstallers
82
+ working-directory : .
61
83
62
84
# get version from jar
63
85
- name : Set Version Unix
64
- if : ${{ matrix.os == 'ubuntu-22.04' || matrix.os == 'macos-13 ' }}
86
+ if : ${{ matrix.os != 'windows-latest ' }}
65
87
run : |
66
88
export VERSION=$(ls desktop/build/temp-*/binaries/desktop-*.jar.SHA-256 | grep -Eo 'desktop-[0-9]+\.[0-9]+\.[0-9]+' | sed 's/desktop-//')
67
89
echo "VERSION=$VERSION" >> $GITHUB_ENV
@@ -73,95 +95,113 @@ jobs:
73
95
shell : powershell
74
96
75
97
- name : Move Release Files for Linux
76
- if : ${{ matrix.os == 'ubuntu-22.04' }}
98
+ if : ${{ matrix.os == 'ubuntu-22.04' || matrix.os == 'ubuntu-22.04-arm' }}
77
99
run : |
78
100
mkdir ${{ github.workspace }}/release-linux-rpm
79
101
mkdir ${{ github.workspace }}/release-linux-deb
80
102
mkdir ${{ github.workspace }}/release-linux-flatpak
81
103
mkdir ${{ github.workspace }}/release-linux-appimage
82
- mv desktop/build/temp-*/binaries/haveno-*.rpm ${{ github.workspace }}/release-linux-rpm/haveno-v${{ env.VERSION }}-linux-x86_64 -installer.rpm
83
- mv desktop/build/temp-*/binaries/haveno_*.deb ${{ github.workspace }}/release-linux-deb/haveno-v${{ env.VERSION }}-linux-x86_64 -installer.deb
84
- mv desktop/build/temp-*/binaries/*.flatpak ${{ github.workspace }}/release-linux-flatpak/haveno-v${{ env.VERSION }}-linux-x86_64 .flatpak
85
- mv desktop/build/temp-*/binaries/haveno_*.AppImage ${{ github.workspace }}/release-linux-appimage/haveno-v${{ env.VERSION }}-linux-x86_64 .AppImage
104
+ mv desktop/build/temp-*/binaries/haveno-*.rpm ${{ github.workspace }}/release-linux-rpm/haveno-v${{ env.VERSION }}-linux-${{ matrix.arch }} -installer.rpm
105
+ mv desktop/build/temp-*/binaries/haveno_*.deb ${{ github.workspace }}/release-linux-deb/haveno-v${{ env.VERSION }}-linux-${{ matrix.arch }} -installer.deb
106
+ mv desktop/build/temp-*/binaries/*.flatpak ${{ github.workspace }}/release-linux-flatpak/haveno-v${{ env.VERSION }}-linux-${{ matrix.arch }} .flatpak
107
+ mv desktop/build/temp-*/binaries/haveno_*.AppImage ${{ github.workspace }}/release-linux-appimage/haveno-v${{ env.VERSION }}-linux-${{ matrix.arch }} .AppImage
86
108
cp desktop/build/temp-*/binaries/desktop-*.jar.SHA-256 ${{ github.workspace }}/release-linux-deb
87
109
cp desktop/build/temp-*/binaries/desktop-*.jar.SHA-256 ${{ github.workspace }}/release-linux-rpm
88
110
cp desktop/build/temp-*/binaries/desktop-*.jar.SHA-256 ${{ github.workspace }}/release-linux-appimage
89
111
cp desktop/build/temp-*/binaries/desktop-*.jar.SHA-256 ${{ github.workspace }}/release-linux-flatpak
90
- cp desktop/build/temp-*/binaries/desktop-*.jar.SHA-256 ${{ github.workspace }}/haveno-v${{ env.VERSION }}-linux-x86_64 -SNAPSHOT-all.jar.SHA-256
112
+ cp desktop/build/temp-*/binaries/desktop-*.jar.SHA-256 ${{ github.workspace }}/haveno-v${{ env.VERSION }}-linux-${{ matrix.arch }} -SNAPSHOT-all.jar.SHA-256
91
113
shell : bash
92
114
- name : Move Release Files for macOS
93
- if : ${{ matrix.os == 'macos-13' }}
115
+ if : ${{ matrix.os == 'macos-13' || matrix.os == 'macos-14' }}
94
116
run : |
95
- mkdir ${{ github.workspace }}/release-macos
96
- mv desktop/build/temp-*/binaries/Haveno-*.dmg ${{ github.workspace }}/release-macos/haveno-v${{ env.VERSION }}-macos-installer.dmg
97
- cp desktop/build/temp-*/binaries/desktop-*.jar.SHA-256 ${{ github.workspace }}/release-macos
98
- cp desktop/build/temp-*/binaries/desktop-*.jar.SHA-256 ${{ github.workspace }}/haveno-v${{ env.VERSION }}-macos-SNAPSHOT-all.jar.SHA-256
117
+ mkdir ${{ github.workspace }}/release-macos-${{ matrix.arch }}
118
+ mv desktop/build/temp-*/binaries/Haveno-*.dmg ${{ github.workspace }}/release-macos-${{ matrix.arch }} /haveno-v${{ env.VERSION }}-macos-${{ matrix.arch }} -installer.dmg
119
+ cp desktop/build/temp-*/binaries/desktop-*.jar.SHA-256 ${{ github.workspace }}/release-macos-${{ matrix.arch }}
120
+ cp desktop/build/temp-*/binaries/desktop-*.jar.SHA-256 ${{ github.workspace }}/haveno-v${{ env.VERSION }}-macos-${{ matrix.arch }}- SNAPSHOT-all.jar.SHA-256
99
121
shell : bash
100
122
- name : Move Release Files on Windows
101
123
if : ${{ matrix.os == 'windows-latest' }}
102
124
run : |
103
125
mkdir ${{ github.workspace }}/release-windows
104
- Move-Item -Path desktop\build\temp-*/binaries\Haveno-*.exe -Destination ${{ github.workspace }}/release-windows/haveno-v${{ env.VERSION }}-windows-installer.exe
126
+ Move-Item -Path desktop\build\temp-*/binaries\Haveno-*.exe -Destination ${{ github.workspace }}/release-windows/haveno-v${{ env.VERSION }}-windows-${{ matrix.arch }}- installer.exe
105
127
Copy-Item -Path desktop\build\temp-*/binaries\desktop-*.jar.SHA-256 -Destination ${{ github.workspace }}/release-windows
106
128
Move-Item -Path desktop\build\temp-*/binaries\desktop-*.jar.SHA-256 -Destination ${{ github.workspace }}/haveno-v${{ env.VERSION }}-windows-SNAPSHOT-all.jar.SHA-256
107
129
shell : powershell
108
130
109
- # win
131
+ # Windows artifacts
110
132
- uses : actions/upload-artifact@v4
111
133
name : " Windows artifacts"
112
134
if : ${{ matrix.os == 'windows-latest' }}
113
135
with :
114
- name : haveno-windows
136
+ name : haveno-windows-${{ matrix.arch }}
115
137
path : ${{ github.workspace }}/release-windows
116
- # macos
138
+
139
+ # macOS artifacts
117
140
- uses : actions/upload-artifact@v4
118
141
name : " macOS artifacts"
119
- if : ${{ matrix.os == 'macos-13' }}
142
+ if : ${{ matrix.os == 'macos-13' || matrix.os == 'macos-14' }}
120
143
with :
121
- name : haveno-macos
122
- path : ${{ github.workspace }}/release-macos
123
- # linux
144
+ name : haveno-macos-${{ matrix.arch }}
145
+ path : ${{ github.workspace }}/release-macos-${{ matrix.arch }}
146
+
147
+ # Linux artifacts
124
148
- uses : actions/upload-artifact@v4
125
149
name : " Linux - deb artifact"
126
- if : ${{ matrix.os == 'ubuntu-22.04' }}
150
+ if : ${{ matrix.os == 'ubuntu-22.04' || matrix.os == 'ubuntu-22.04-arm' }}
127
151
with :
128
- name : haveno-linux-deb
152
+ name : haveno-linux-${{ matrix.arch }}- deb
129
153
path : ${{ github.workspace }}/release-linux-deb
130
154
131
155
- uses : actions/upload-artifact@v4
132
156
name : " Linux - rpm artifact"
133
- if : ${{ matrix.os == 'ubuntu-22.04' }}
157
+ if : ${{ matrix.os == 'ubuntu-22.04' || matrix.os == 'ubuntu-22.04-arm' }}
134
158
with :
135
- name : haveno-linux-rpm
159
+ name : haveno-linux-${{ matrix.arch }}- rpm
136
160
path : ${{ github.workspace }}/release-linux-rpm
137
161
138
162
- uses : actions/upload-artifact@v4
139
163
name : " Linux - AppImage artifact"
140
- if : ${{ matrix.os == 'ubuntu-22.04' }}
164
+ if : ${{ matrix.os == 'ubuntu-22.04' || matrix.os == 'ubuntu-22.04-arm' }}
141
165
with :
142
- name : haveno-linux-appimage
166
+ name : haveno-linux-${{ matrix.arch }}- appimage
143
167
path : ${{ github.workspace }}/release-linux-appimage
144
168
145
169
- uses : actions/upload-artifact@v4
146
170
name : " Linux - flatpak artifact"
147
- if : ${{ matrix.os == 'ubuntu-22.04' }}
171
+ if : ${{ matrix.os == 'ubuntu-22.04' || matrix.os == 'ubuntu-22.04-arm' }}
148
172
with :
149
- name : haveno-linux-flatpak
173
+ name : haveno-linux-${{ matrix.arch }}- flatpak
150
174
path : ${{ github.workspace }}/release-linux-flatpak
151
175
152
176
- name : Release
153
177
uses : softprops/action-gh-release@v2
154
178
if : startsWith(github.ref, 'refs/tags/')
155
179
with :
156
180
files : |
181
+ # Linux x86_64
157
182
${{ github.workspace }}/release-linux-deb/haveno-v${{ env.VERSION }}-linux-x86_64-installer.deb
158
183
${{ github.workspace }}/release-linux-rpm/haveno-v${{ env.VERSION }}-linux-x86_64-installer.rpm
159
184
${{ github.workspace }}/release-linux-appimage/haveno-v${{ env.VERSION }}-linux-x86_64.AppImage
160
185
${{ github.workspace }}/release-linux-flatpak/haveno-v${{ env.VERSION }}-linux-x86_64.flatpak
161
186
${{ github.workspace }}/haveno-v${{ env.VERSION }}-linux-x86_64-SNAPSHOT-all.jar.SHA-256
162
- ${{ github.workspace }}/release-macos/haveno-v${{ env.VERSION }}-macos-installer.dmg
163
- ${{ github.workspace }}/haveno-v${{ env.VERSION }}-macos-SNAPSHOT-all.jar.SHA-256
164
- ${{ github.workspace }}/release-windows/haveno-v${{ env.VERSION }}-windows-installer.exe
187
+
188
+ # Linux aarch64
189
+ ${{ github.workspace }}/release-linux-deb/haveno-v${{ env.VERSION }}-linux-aarch64-installer.deb
190
+ ${{ github.workspace }}/release-linux-rpm/haveno-v${{ env.VERSION }}-linux-aarch64-installer.rpm
191
+ ${{ github.workspace }}/release-linux-appimage/haveno-v${{ env.VERSION }}-linux-aarch64.AppImage
192
+ ${{ github.workspace }}/release-linux-flatpak/haveno-v${{ env.VERSION }}-linux-aarch64.flatpak
193
+ ${{ github.workspace }}/haveno-v${{ env.VERSION }}-linux-aarch64-SNAPSHOT-all.jar.SHA-256
194
+
195
+ # macOS x86_64
196
+ ${{ github.workspace }}/release-macos-x86_64/haveno-v${{ env.VERSION }}-macos-x86_64-installer.dmg
197
+ ${{ github.workspace }}/haveno-v${{ env.VERSION }}-macos-x86_64-SNAPSHOT-all.jar.SHA-256
198
+
199
+ # macOS aarch64
200
+ ${{ github.workspace }}/release-macos-aarch64/haveno-v${{ env.VERSION }}-macos-aarch64-installer.dmg
201
+ ${{ github.workspace }}/haveno-v${{ env.VERSION }}-macos-aarch64-SNAPSHOT-all.jar.SHA-256
202
+
203
+ # Windows
204
+ ${{ github.workspace }}/release-windows/haveno-v${{ env.VERSION }}-windows-x86_64-installer.exe
165
205
${{ github.workspace }}/haveno-v${{ env.VERSION }}-windows-SNAPSHOT-all.jar.SHA-256
166
206
167
207
# https://git-scm.com/docs/git-tag - git-tag Docu
0 commit comments