@@ -10,22 +10,28 @@ jobs:
1010 config : [debug, release]
1111 platform : [x64]
1212 depsrc : [none, contrib, system]
13+ cc : [gcc, clang]
14+ timeout-minutes : 30
1315 steps :
1416 - name : Checkout
1517 uses : actions/checkout@v4
18+ - name : Install booststrap's dependencies
19+ run : |
20+ sudo apt-get update
21+ sudo apt-get -y install uuid-dev
1622 - name : Install dependencies
1723 if : matrix.depsrc == 'system'
1824 run : |
1925 sudo apt-get update
20- sudo apt-get -y install libcurl4-openssl-dev
26+ sudo apt-get -y install libcurl4-openssl-dev libzip-dev liblua5.3-dev
2127 - name : Build
22- run : PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} PREMAKE_OPTS="--curl -src=${{ matrix.depsrc }}" ./Bootstrap.sh
28+ run : PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} PREMAKE_OPTS="--lib -src=${{ matrix.depsrc }} --cc=${{ matrix.cc }}" ./Bootstrap.sh
2329 - name : Test
2430 run : bin/${{ matrix.config }}/premake5 test --test-all
2531 - name : Docs check
2632 run : bin/${{ matrix.config }}/premake5 docs-check
2733 - name : Upload Artifacts
28- if : matrix.config == 'release' && matrix.depsrc == 'contrib'
34+ if : matrix.config == 'release' && matrix.depsrc == 'contrib' && matrix.cc == 'gcc'
2935 uses : actions/upload-artifact@v4
3036 with :
3137 name : premake-linux-${{ matrix.platform }}
3642 matrix :
3743 config : [debug, release]
3844 platform : [x64]
45+ timeout-minutes : 30
3946 steps :
4047 - name : Checkout
4148 uses : actions/checkout@v4
5865 config : [debug, release]
5966 platform : [Win32, x64]
6067 msdev : [vs2022]
68+ timeout-minutes : 30
6169 steps :
6270 - name : Checkout
6371 uses : actions/checkout@v4
@@ -85,11 +93,14 @@ jobs:
8593 matrix :
8694 config : [debug, release]
8795 msystem : [mingw32, mingw64]
96+ depsrc : [none, contrib, system]
97+ cc : [mingw]
8898 include :
8999 - platform : x86
90100 msystem : mingw32
91101 - platform : x64
92102 msystem : mingw64
103+ timeout-minutes : 30
93104 defaults :
94105 run :
95106 shell : msys2 {0}
@@ -106,14 +117,22 @@ jobs:
106117 make
107118 pacboy : >-
108119 toolchain:p
120+ - name : Install dependencies
121+ if : matrix.depsrc == 'system' && matrix.platform == 'x64'
122+ run : |
123+ pacman -Suy --noconfirm mingw-w64-x86_64-curl mingw-w64-x86_64-lua53 mingw-w64-x86_64-libzip mingw-w64-x86_64-zlib
124+ - name : Install dependencies
125+ if : matrix.depsrc == 'system' && matrix.platform == 'x86'
126+ run : |
127+ pacman -Suy --noconfirm mingw-w64-i686-curl mingw-w64-i686-lua53 mingw-w64-i686-libzip mingw-w64-i686-zlib
109128 - name : Build
110- run : PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} ./Bootstrap.sh
129+ run : PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} PREMAKE_OPTS="--lib-src=${{ matrix.depsrc }} --cc=${{ matrix.cc }}" ./Bootstrap.sh
111130 - name : Test
112131 run : bin/${{ matrix.config }}/premake5.exe test --test-all
113132 - name : Docs check
114133 run : bin/${{ matrix.config }}/premake5.exe docs-check
115134 - name : Upload Artifacts
116- if : matrix.config == 'release'
135+ if : matrix.config == 'release' && matrix.depsrc == 'contrib' && matrix.cc == 'mingw'
117136 uses : actions/upload-artifact@v4
118137 with :
119138 name : premake-${{ matrix.msystem }}-${{ matrix.platform }}
@@ -123,6 +142,7 @@ jobs:
123142 strategy :
124143 matrix :
125144 config : [debug, release]
145+ timeout-minutes : 30
126146 steps :
127147 - name : Checkout
128148 uses : actions/checkout@v4
@@ -141,6 +161,223 @@ jobs:
141161 with :
142162 name : premake-cosmopolitan-universal
143163 path : bin/${{ matrix.config }}/premake5
164+ freebsd :
165+ runs-on : ubuntu-latest
166+ strategy :
167+ matrix :
168+ config : [debug, release]
169+ platform : [x64]
170+ cc : [gcc, clang]
171+ timeout-minutes : 30
172+ defaults :
173+ run :
174+ shell : freebsd {0}
175+ steps :
176+ - name : Checkout
177+ uses : actions/checkout@v4
178+ - name : Start FreeBSD VM
179+ uses : vmactions/freebsd-vm@v1
180+ with :
181+ usesh : true
182+ sync : sshfs
183+ prepare : |
184+ pkg install -y gmake ca_root_nss gcc
185+ - name : Build
186+ run : |
187+ cd $GITHUB_WORKSPACE
188+ PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} PREMAKE_OPTS="--cc=${{ matrix.cc }}" ./Bootstrap.sh
189+ - name : Test
190+ run : |
191+ cd $GITHUB_WORKSPACE
192+ bin/${{ matrix.config }}/premake5 test --test-all
193+ - name : Docs check
194+ run : |
195+ cd $GITHUB_WORKSPACE
196+ bin/${{ matrix.config }}/premake5 docs-check
197+ - name : Upload Artifacts
198+ if : matrix.config == 'release' && matrix.cc == 'clang'
199+ uses : actions/upload-artifact@v4
200+ with :
201+ name : premake-freebsd-${{ matrix.platform }}
202+ path : bin/${{ matrix.config }}/
203+ openbsd :
204+ runs-on : ubuntu-latest
205+ strategy :
206+ matrix :
207+ config : [debug, release]
208+ platform : [x64]
209+ cc : [clang]
210+ timeout-minutes : 30
211+ defaults :
212+ run :
213+ shell : openbsd {0}
214+ steps :
215+ - name : Checkout
216+ uses : actions/checkout@v4
217+ - name : Start OpenBSD VM
218+ uses : vmactions/openbsd-vm@v1
219+ with :
220+ usesh : true
221+ sync : sshfs
222+ prepare : |
223+ pkg_add gmake
224+ - name : Build
225+ run : |
226+ cd $GITHUB_WORKSPACE
227+ PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} PREMAKE_OPTS="--cc=${{ matrix.cc }}" ./Bootstrap.sh
228+ - name : Test
229+ run : |
230+ cd $GITHUB_WORKSPACE
231+ bin/${{ matrix.config }}/premake5 test --test-all
232+ - name : Docs check
233+ run : |
234+ cd $GITHUB_WORKSPACE
235+ bin/${{ matrix.config }}/premake5 docs-check
236+ - name : Upload Artifacts
237+ if : matrix.config == 'release' && matrix.cc == 'clang'
238+ uses : actions/upload-artifact@v4
239+ with :
240+ name : premake-openbsd-${{ matrix.platform }}
241+ path : bin/${{ matrix.config }}/
242+ netbsd :
243+ runs-on : ubuntu-latest
244+ strategy :
245+ matrix :
246+ config : [debug, release]
247+ platform : [x64]
248+ cc : [gcc]
249+ timeout-minutes : 30
250+ defaults :
251+ run :
252+ shell : netbsd {0}
253+ steps :
254+ - name : Checkout
255+ uses : actions/checkout@v4
256+ - name : Start NetBSD VM
257+ uses : vmactions/netbsd-vm@v1
258+ with :
259+ prepare : |
260+ pkg_add gmake
261+ - name : Build
262+ run : |
263+ cd $GITHUB_WORKSPACE
264+ PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} PREMAKE_OPTS="--cc=${{ matrix.cc }}" ./Bootstrap.sh
265+ - name : Test
266+ run : |
267+ cd $GITHUB_WORKSPACE
268+ bin/${{ matrix.config }}/premake5 test --test-all
269+ - name : Docs check
270+ run : |
271+ cd $GITHUB_WORKSPACE
272+ bin/${{ matrix.config }}/premake5 docs-check
273+ dragonflybsd :
274+ runs-on : ubuntu-latest
275+ strategy :
276+ matrix :
277+ config : [debug, release]
278+ platform : [x64]
279+ cc : [gcc]
280+ timeout-minutes : 30
281+ defaults :
282+ run :
283+ shell : dragonflybsd {0}
284+ steps :
285+ - name : Checkout
286+ uses : actions/checkout@v4
287+ - name : Start DragonflyBSD VM
288+ uses : vmactions/dragonflybsd-vm@v1
289+ with :
290+ prepare : |
291+ pkg install -y gmake
292+ - name : Build
293+ run : |
294+ cd $GITHUB_WORKSPACE
295+ PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} PREMAKE_OPTS="--cc=${{ matrix.cc }}" ./Bootstrap.sh
296+ - name : Test
297+ run : |
298+ cd $GITHUB_WORKSPACE
299+ bin/${{ matrix.config }}/premake5 test --test-all
300+ - name : Docs check
301+ run : |
302+ cd $GITHUB_WORKSPACE
303+ bin/${{ matrix.config }}/premake5 docs-check
304+ solaris :
305+ runs-on : ubuntu-latest
306+ strategy :
307+ matrix :
308+ config : [debug, release]
309+ platform : [x64]
310+ cc : [gcc]
311+ timeout-minutes : 30
312+ defaults :
313+ run :
314+ shell : solaris {0}
315+ steps :
316+ - name : Checkout
317+ uses : actions/checkout@v4
318+ - name : Start Solaris VM
319+ uses : vmactions/solaris-vm@v1
320+ with :
321+ usesh : true
322+ cpu : 4
323+ mem : 8192
324+ release : 11.4-gcc
325+ - name : Build
326+ run : |
327+ cd $GITHUB_WORKSPACE
328+ CC=${{ matrix.cc }} PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} PREMAKE_OPTS="--cc=${{ matrix.cc }}" ./Bootstrap.sh
329+ - name : Test
330+ run : |
331+ cd $GITHUB_WORKSPACE
332+ bin/${{ matrix.config }}/premake5 test --test-all
333+ - name : Docs check
334+ run : |
335+ cd $GITHUB_WORKSPACE
336+ bin/${{ matrix.config }}/premake5 docs-check
337+ - name : Upload Artifacts
338+ if : matrix.config == 'release' && matrix.cc == 'gcc'
339+ uses : actions/upload-artifact@v4
340+ with :
341+ name : premake-solaris-${{ matrix.platform }}
342+ path : bin/${{ matrix.config }}/
343+ omnios :
344+ runs-on : ubuntu-latest
345+ strategy :
346+ matrix :
347+ config : [debug, release]
348+ platform : [x64]
349+ cc : [gcc]
350+ timeout-minutes : 30
351+ defaults :
352+ run :
353+ shell : omnios {0}
354+ steps :
355+ - name : Checkout
356+ uses : actions/checkout@v4
357+ - name : Start OmniOS VM
358+ uses : vmactions/omnios-vm@v1
359+ with :
360+ usesh : true
361+ prepare : |
362+ pkg install build-essential web/ca-bundle
363+ - name : Build
364+ run : |
365+ cd $GITHUB_WORKSPACE
366+ CC=${{ matrix.cc }} PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} PREMAKE_OPTS="--cc=${{ matrix.cc }}" ./Bootstrap.sh
367+ - name : Test
368+ run : |
369+ cd $GITHUB_WORKSPACE
370+ bin/${{ matrix.config }}/premake5 test --test-all
371+ - name : Docs check
372+ run : |
373+ cd $GITHUB_WORKSPACE
374+ bin/${{ matrix.config }}/premake5 docs-check
375+ - name : Upload Artifacts
376+ if : matrix.config == 'release' && matrix.cc == 'gcc'
377+ uses : actions/upload-artifact@v4
378+ with :
379+ name : premake-omnios-${{ matrix.platform }}
380+ path : bin/${{ matrix.config }}/
144381
145382 # This job will be required for PRs to be merged.
146383 # This should depend on (via needs) all jobs that need to be successful for the PR to be merged.
0 commit comments