name: ci on: push: branches: - "main" pull_request: branches: - "main" env: PREMAKE_VERSION: "5.0.0-beta2" jobs: build-test-linux: env: PREMAKE_CONFIG: gmake2 runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: submodules: recursive - name: Install multilib run: | sudo apt-get update sudo apt-get install gcc-multilib g++-multilib - name: Setup premake uses: abel0b/setup-premake@v2.3 with: version: ${{ env.PREMAKE_VERSION }} - name: Premake generate working-directory: ${{ github.workspace }} run: premake5 ${{ env.PREMAKE_CONFIG }} - name: Build working-directory: ${{ github.workspace }} run: make -C build -j$(nproc) config=release_x86 all - name: Test working-directory: ${{ github.workspace }}/build/lib/Release_x86/tests run: | ./ObjCommonTests ./ObjLoadingTests ./ParserTests ./ZoneCodeGeneratorLibTests ./ZoneCommonTests build-test-windows: env: PREMAKE_CONFIG: vs2022 runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: submodules: recursive - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.3.1 - name: Setup premake uses: abel0b/setup-premake@v2.3 with: version: ${{ env.PREMAKE_VERSION }} - name: Premake generate working-directory: ${{ github.workspace }} run: premake5 ${{ env.PREMAKE_CONFIG }} - name: Build working-directory: ${{ github.workspace }} run: msbuild /m /p:Configuration=Release /p:Platform=Win32 build - name: Test working-directory: ${{ github.workspace }}/build/lib/Release_x86/tests run: | $combinedExitCode = 0 ./ObjCommonTests $combinedExitCode = [System.Math]::max($combinedExitCode, $LASTEXITCODE) ./ObjLoadingTests $combinedExitCode = [System.Math]::max($combinedExitCode, $LASTEXITCODE) ./ParserTests $combinedExitCode = [System.Math]::max($combinedExitCode, $LASTEXITCODE) ./ZoneCodeGeneratorLibTests $combinedExitCode = [System.Math]::max($combinedExitCode, $LASTEXITCODE) ./ZoneCommonTests $combinedExitCode = [System.Math]::max($combinedExitCode, $LASTEXITCODE) exit $combinedExitCode