Test suite cleanups #1206
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI Workflow | |
on: [push, pull_request] | |
jobs: | |
linux: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
config: [debug, release] | |
platform: [x64] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Build | |
run: make -f Bootstrap.mak linux PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} | |
- name: Test | |
run: bin/${{ matrix.config }}/premake5 test --test-all | |
- name: Docs check | |
run: bin/${{ matrix.config }}/premake5 docs-check | |
- name: Upload Artifacts | |
if: matrix.config == 'release' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: premake-linux-${{ matrix.platform }} | |
path: bin/${{ matrix.config }}/ | |
macosx: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
config: [debug, release] | |
platform: [x64] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Build | |
run: make -f Bootstrap.mak macosx PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} | |
- name: Test | |
run: bin/${{ matrix.config }}/premake5 test --test-all | |
- name: Docs check | |
run: bin/${{ matrix.config }}/premake5 docs-check | |
- name: Upload Artifacts | |
if: matrix.config == 'release' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: premake-macosx-${{ matrix.platform }} | |
path: bin/${{ matrix.config }}/ | |
windows: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
config: [debug, release] | |
platform: [Win32, x64] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Build | |
run: | | |
$vcvarsall_path = vswhere.exe -find VC\Auxiliary\Build\vcvarsall.bat | |
cmd.exe /c "call ""$vcvarsall_path"" x86_amd64 && nmake -f Bootstrap.mak MSDEV=vs2019 windows-msbuild PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }}" | |
- name: Test | |
run: bin\${{ matrix.config }}\premake5 test --test-all | |
shell: cmd | |
- name: Docs check | |
run: bin\${{ matrix.config }}\premake5 docs-check | |
shell: cmd | |
- name: Upload Artifacts | |
if: matrix.config == 'release' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: premake-windows-${{ matrix.platform }} | |
path: bin\${{ matrix.config }}\ | |
mingw: | |
runs-on: windows-2022 | |
strategy: | |
matrix: | |
config: [debug, release] | |
msystem: [mingw32, mingw64] | |
include: | |
- platform: x86 | |
msystem: mingw32 | |
- platform: x64 | |
msystem: mingw64 | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: 'Setup MSYS2' | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{ matrix.msystem }} | |
update: true | |
install: >- | |
git | |
make | |
pacboy: >- | |
toolchain:p | |
- name: Build | |
run: make -f Bootstrap.mak mingw PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }} | |
- name: Test | |
run: bin/${{ matrix.config }}/premake5.exe test --test-all | |
- name: Docs check | |
run: bin/${{ matrix.config }}/premake5.exe docs-check | |
- name: Upload Artifacts | |
if: matrix.config == 'release' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: premake-${{ matrix.msystem }}-${{ matrix.platform }} | |
path: bin\${{ matrix.config }}\ | |
cosmopolitan: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
config: [debug, release] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: tritao/[email protected] | |
with: | |
version: '3.9.2' | |
- name: Build | |
run: make -f Bootstrap.mak cosmo CONFIG=${{ matrix.config }} | |
- name: Test | |
run: bin/${{ matrix.config }}/premake5 test --test-all | |
- name: Docs check | |
run: bin/${{ matrix.config }}/premake5 docs-check | |
- name: Upload Artifacts | |
if: matrix.config == 'release' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: premake-cosmopolitan-universal | |
path: bin/${{ matrix.config }}/premake5 | |
# This job will be required for PRs to be merged. | |
# This should depend on (via needs) all jobs that need to be successful for the PR to be merged. | |
ci: | |
runs-on: ubuntu-latest | |
needs: [linux, macosx, windows] | |
if: always() | |
steps: | |
- name: All builds ok | |
if: ${{ !(contains(needs.*.result, 'failure')) }} | |
run: exit 0 | |
- name: Some builds failed | |
if: ${{ contains(needs.*.result, 'failure') }} | |
run: exit 1 |