1
1
name : Build
2
2
3
3
on :
4
- # Do it on every push or PR on these branches
5
4
push :
6
5
branches : [dev, stable]
7
6
pull_request :
8
7
branches : [dev, stable]
9
- # Do build on demand
10
8
workflow_dispatch :
11
9
12
10
jobs :
13
- # Build Sonic Pi
14
11
build :
15
12
name : " ${{matrix.title}} (${{matrix.cc}}, ${{matrix.arch}}, ${{matrix.build_type}})"
16
13
runs-on : ${{matrix.os}}
17
14
strategy :
18
15
fail-fast : false
19
16
matrix :
20
17
include :
21
- - {
22
- title : " Linux" ,
23
- os : " ubuntu-latest" ,
24
- cc : " clang" ,
25
- arch : " x64" ,
26
- build_type : " Release" ,
27
- }
28
- - {
29
- title : " Linux" ,
30
- os : " ubuntu-latest" ,
31
- cc : " clang" ,
32
- arch : " x64" ,
33
- build_type : " Debug" ,
34
- }
35
- - {
36
- title : " Linux" ,
37
- os : " ubuntu-latest" ,
38
- cc : " gcc" ,
39
- arch : " x64" ,
40
- build_type : " Release" ,
41
- }
42
- - {
43
- title : " Linux" ,
44
- os : " ubuntu-latest" ,
45
- cc : " gcc" ,
46
- arch : " x64" ,
47
- build_type : " Debug" ,
48
- }
49
- - {
50
- title : " Windows" ,
51
- os : " windows-latest" ,
52
- cc : " vs2022" ,
53
- arch : " x64" ,
54
- build_type : " Release" ,
55
- }
56
- - {
57
- title : " Windows" ,
58
- os : " windows-latest" ,
59
- cc : " vs2022" ,
60
- arch : " x64" ,
61
- build_type : " Debug" ,
62
- }
63
- - {
64
- title : " Mac" ,
65
- os : " macos-latest" ,
66
- cc : " clang" ,
67
- arch : " x64" ,
68
- build_type : " Release" ,
69
- }
70
- - {
71
- title : " Mac" ,
72
- os : " macos-latest" ,
73
- cc : " clang" ,
74
- arch : " x64" ,
75
- build_type : " Debug" ,
76
- }
77
- - {
78
- title : " Mac" ,
79
- os : " macos-latest" ,
80
- cc : " clang" ,
81
- arch : " arm64" ,
82
- build_type : " Release" ,
83
- }
84
- - {
85
- title : " Mac" ,
86
- os : " macos-latest" ,
87
- cc : " clang" ,
88
- arch : " arm64" ,
89
- build_type : " Debug" ,
90
- }
18
+ - { title: "Linux", os: "ubuntu-latest", cc: "clang", arch: "x64", build_type: "Release" }
19
+ - { title: "Linux", os: "ubuntu-latest", cc: "clang", arch: "x64", build_type: "Debug" }
20
+ - { title: "Linux", os: "ubuntu-latest", cc: "gcc", arch: "x64", build_type: "Release" }
21
+ - { title: "Linux", os: "ubuntu-latest", cc: "gcc", arch: "x64", build_type: "Debug" }
22
+ - { title: "Windows", os: "windows-latest", cc: "vs2022", arch: "x64", build_type: "Release" }
23
+ - { title: "Windows", os: "windows-latest", cc: "vs2022", arch: "x64", build_type: "Debug" }
24
+ - { title: "Mac", os: "macos-latest", cc: "clang", arch: "x64", build_type: "Release" }
25
+ - { title: "Mac", os: "macos-latest", cc: "clang", arch: "x64", build_type: "Debug" }
26
+ - { title: "Mac", os: "macos-latest", cc: "clang", arch: "arm64", build_type: "Release" }
27
+ - { title: "Mac", os: "macos-latest", cc: "clang", arch: "arm64", build_type: "Debug" }
91
28
92
29
steps :
93
- # Get the code
94
- - uses : actions/checkout@v2
30
+ - uses : actions/checkout@v4
95
31
96
- # Install Ruby for the windows build
97
- - uses : ruby/setup-ruby@v1
32
+ - uses : ruby/setup-ruby@v4
98
33
id : ruby-inst
99
34
with :
100
35
ruby-version : 3.2
101
36
if : matrix.os == 'windows-latest'
102
37
103
- # Install gems Windows
104
38
- name : Setup Ruby Windows
105
39
working-directory : ${{github.workspace}}/app
106
40
run : |
107
41
gem install rugged
108
42
gem install test-unit
109
43
if : matrix.os == 'windows-latest'
110
44
111
- # Install gems Linux/Max - needs sudo
112
45
- name : Setup Ruby Gems
113
46
working-directory : ${{github.workspace}}/app
114
47
run : |
115
48
sudo gem install rugged
116
49
sudo gem install test-unit
117
50
if : matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
118
51
119
- # For windows we build a symlink in the bash shell because the windows method does not seem to work.
120
52
- name : Add SymLink for Windows
121
53
working-directory : ${{github.workspace}}/app/server/native
122
54
run : |
123
55
ln -s ${{steps.ruby-inst.outputs.ruby-prefix}} ruby
124
56
if : matrix.os == 'windows-latest'
125
57
126
- # Get Qt
127
58
- name : Install Qt 6
128
- uses : jurplel/install-qt-action@v3
59
+ uses : jurplel/install-qt-action@v4
129
60
with :
130
61
modules : " qtpositioning qtwebchannel qtwebengine qtwebsockets"
131
62
version : " 6.7.0"
132
63
133
- # Install Elixir on Ubuntu
134
64
- name : Linux Elixir
135
- uses : erlef/setup-beam@v1
65
+ uses : erlef/setup-beam@v4
136
66
with :
137
67
otp-version : " 26.1.2"
138
68
elixir-version : " 1.15.7"
139
69
if : matrix.os == 'ubuntu-latest'
140
70
141
- # Install Elixir on Windows
142
71
- name : Win Elixir
143
- uses : erlef/setup-beam@v1
72
+ uses : erlef/setup-beam@v4
144
73
with :
145
74
otp-version : " 26.1.2"
146
75
elixir-version : " 1.15.7"
147
76
if : matrix.os == 'windows-latest'
148
77
149
- # Install Elixir on MacOS
150
78
- name : Mac Elixir
151
79
continue-on-error : true
152
80
run : |
155
83
brew install elixir
156
84
if : matrix.os == 'macos-latest'
157
85
158
- # Prebuild on Ubuntu
159
86
- name : Prebuild Linux
160
87
working-directory : ${{github.workspace}}/app
161
88
env :
@@ -166,19 +93,14 @@ jobs:
166
93
./linux-prebuild.sh
167
94
if : matrix.os == 'ubuntu-latest'
168
95
169
- # Prebuild on Mac
170
96
- name : Prebuild Mac
171
97
working-directory : ${{github.workspace}}/app
172
98
env :
173
99
CC : ${{ matrix.cc }}
174
100
QT_INSTALL_LOCATION : ${{env.Qt6_DIR}}
175
- run : |
176
- ./mac-prebuild.sh
101
+ run : ./mac-prebuild.sh
177
102
if : matrix.os == 'macos-latest'
178
103
179
- # Prebuild on Windows
180
- # Note that we 'hide' the msys folders on windows to stop conflicts when building
181
- # Flac
182
104
- name : Prebuild Windows
183
105
working-directory : ${{github.workspace}}/app
184
106
shell : cmd
@@ -190,41 +112,31 @@ jobs:
190
112
win-prebuild.bat
191
113
if : matrix.os == 'windows-latest'
192
114
193
- # - name: Setup tmate session
194
- # uses: mxschmitt/action-tmate@v3
195
-
196
- # Run Configuration Config on Ubuntu
197
115
- name : Config Linux
198
116
working-directory : ${{github.workspace}}/app
199
117
env :
200
118
CC : ${{ matrix.cc }}
201
119
QT_INSTALL_LOCATION : ${{env.Qt6_DIR}}
202
- run : |
203
- ./linux-config.sh --config ${{ matrix.build_type }}
120
+ run : ./linux-config.sh --config ${{ matrix.build_type }}
204
121
if : matrix.os == 'ubuntu-latest'
205
122
206
- # Run Configuration Config on Mac
207
123
- name : Config Mac
208
124
working-directory : ${{github.workspace}}/app
209
125
env :
210
126
CC : ${{ matrix.cc }}
211
127
QT_INSTALL_LOCATION : ${{env.Qt6_DIR}}
212
- run : |
213
- ./mac-config.sh --config ${{ matrix.build_type }}
128
+ run : ./mac-config.sh --config ${{ matrix.build_type }}
214
129
if : matrix.os == 'macos-latest'
215
130
216
- # Run Configuration Config on Windows
217
131
- name : Config Windows
218
132
working-directory : ${{github.workspace}}/app
219
133
shell : cmd
220
134
env :
221
135
CC : ${{ matrix.cc }}
222
136
QT_INSTALL_LOCATION : ${{env.Qt6_DIR}}
223
- run : |
224
- win-config.bat ${{ matrix.build_type }}
137
+ run : win-config.bat ${{ matrix.build_type }}
225
138
if : matrix.os == 'windows-latest'
226
139
227
- # Finally: Build
228
140
- name : Build Linux
229
141
working-directory : ${{github.workspace}}/app
230
142
run : ./linux-build-gui.sh
@@ -241,7 +153,6 @@ jobs:
241
153
run : win-build-gui.bat ${{ matrix.build_type }}
242
154
if : matrix.os == 'windows-latest'
243
155
244
- # Build Tau server
245
156
- name : Build Tau Server (Linux)
246
157
working-directory : ${{github.workspace}}/app
247
158
run : ./linux-post-tau-prod-release.sh
@@ -328,7 +239,7 @@ jobs:
328
239
if : matrix.os == 'windows-latest'
329
240
330
241
- name : Archive Logs
331
- uses : actions/upload-artifact@v2
242
+ uses : actions/upload-artifact@v4
332
243
if : ${{ always() }}
333
244
with :
334
245
name : Logs_${{matrix.title}}_${{matrix.cc}}_${{matrix.arch}}_${{matrix.build_type}}
0 commit comments