Fix zokumbsp seg angle manipulation (horizon line effect) in software renderring #4153
Workflow file for this run
This file contains hidden or 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: Continuous Integration | |
on: [push, pull_request] | |
env: | |
VCPKG_BINARY_SOURCES: "clear;files,${{ github.workspace }}/vcpkg_cache,readwrite" | |
jobs: | |
build: | |
name: ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
defaults: | |
run: | |
shell: ${{ matrix.config.shell }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: "MSVC x64" | |
os: windows-latest | |
build_type: "Release" | |
vcpkg: true | |
triplet: x64-windows-static-release | |
shell: pwsh | |
package_name: "msvc_x64" | |
release: true | |
artifact-path: build/*.zip | |
extra_options: >- | |
-A x64 | |
-DCMAKE_TOOLCHAIN_FILE="${env:VCPKG_INSTALLATION_ROOT}\scripts\buildsystems\vcpkg.cmake" | |
-DVCPKG_TARGET_TRIPLET=x64-windows-static-release | |
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded | |
-DCMAKE_IGNORE_PATH="C:/Strawberry/perl/bin;C:/Strawberry/c/lib" | |
- name: "MSYS2 UCRT64" | |
os: windows-latest | |
build_type: "Release" | |
extra_options: "-G Ninja" | |
package_name: "mingw_x64" | |
shell: "msys2 {0}" | |
msystem: ucrt64 | |
msys-env: mingw-w64-ucrt-x86_64 | |
artifact-path: build/*.zip | |
- name: "Linux GCC" | |
os: ubuntu-22.04 | |
build_type: "Release" | |
extra_options: "-G Ninja -DCMAKE_INSTALL_PREFIX=/usr" | |
release: true | |
package_name: "linux_gcc" | |
shell: bash | |
artifact-path: build/*.appimage | |
- name: "macOS arm64 Clang" | |
os: macos-latest | |
build_type: "Release" | |
extra_options: "-G Ninja" | |
release: true | |
package_name: "mac_arm64" | |
shell: bash | |
artifact-path: build/*.zip | |
- name: "macOS x64 Clang" | |
os: macos-13 | |
build_type: "Release" | |
extra_options: "-G Ninja" | |
release: true | |
package_name: "mac_x64" | |
shell: bash | |
artifact-path: build/*.zip | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies (MSYS2) | |
if: matrix.config.shell == 'msys2 {0}' | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{ matrix.config.msystem }} | |
install: >- | |
${{ matrix.config.msys-env }}-gcc | |
${{ matrix.config.msys-env }}-cmake | |
${{ matrix.config.msys-env }}-ninja | |
${{ matrix.config.msys-env }}-pkgconf | |
${{ matrix.config.msys-env }}-libxmp | |
${{ matrix.config.msys-env }}-fluidsynth | |
${{ matrix.config.msys-env }}-libmad | |
${{ matrix.config.msys-env }}-libvorbis | |
${{ matrix.config.msys-env }}-portmidi | |
${{ matrix.config.msys-env }}-SDL2 | |
${{ matrix.config.msys-env }}-SDL2_image | |
${{ matrix.config.msys-env }}-SDL2_mixer | |
${{ matrix.config.msys-env }}-libsndfile | |
${{ matrix.config.msys-env }}-libzip | |
- name: Install Dependencies (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get upgrade | |
sudo apt-get install -y \ | |
gcc \ | |
ninja-build \ | |
pkg-config \ | |
libxmp-dev \ | |
libfluidsynth-dev \ | |
fluidsynth \ | |
libgl-dev \ | |
libglu1-mesa-dev \ | |
libmad0-dev \ | |
libportmidi-dev \ | |
libsdl2-dev \ | |
libsdl2-image-dev \ | |
libsdl2-mixer-dev \ | |
libvorbis-dev \ | |
libsndfile1-dev \ | |
libzip-dev \ | |
zipcmp \ | |
zipmerge \ | |
ziptool | |
- name: Install Dependencies (macOS) | |
if: runner.os == 'macOS' | |
run: brew bundle | |
- name: Generate vcpkg cache key | |
if: ${{ matrix.config.vcpkg }} | |
shell: bash | |
run: echo "CACHE_KEY=vcpkg-${{ matrix.config.triplet }}-${{ hashFiles('prboom2/vcpkg.json') }}" >> $GITHUB_ENV | |
- name: Restore vcpkg cache | |
if: ${{ matrix.config.vcpkg }} | |
uses: actions/cache/restore@v4 | |
with: | |
path: ${{ github.workspace }}/vcpkg_cache | |
key: ${{ env.CACHE_KEY }} | |
restore-keys: vcpkg-${{ matrix.config.triplet }}- | |
- name: Configure | |
run: >- | |
cmake -S prboom2 | |
-B build | |
-DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} | |
-DSTRICT_FIND=ON | |
${{ matrix.config.extra_options }} | |
- name: Build | |
run: cmake --build build --config ${{ matrix.config.build_type }} | |
# Delete the old cache on hit to emulate a cache update. | |
- name: Delete old vcpkg cache | |
if: ${{ matrix.config.vcpkg }} | |
continue-on-error: true | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: gh cache delete --repo ${{ github.repository }} ${{ env.CACHE_KEY }} | |
- name: Save vcpkg cache | |
if: ${{ matrix.config.vcpkg }} | |
uses: actions/cache/save@v4 | |
with: | |
path: ${{ github.workspace }}/vcpkg_cache | |
key: ${{ env.CACHE_KEY }} | |
- name: Package | |
if: ${{ matrix.config.package_name }} | |
run: | | |
cd build | |
cpack | |
- name: Upload Artifacts | |
if: ${{ matrix.config.package_name }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.config.package_name }} | |
path: ${{ matrix.config.artifact-path }} | |
if-no-files-found: error | |
- name: Release | |
if: ${{ contains(github.ref, 'tags') && matrix.config.release }} | |
uses: ncipollo/release-action@v1 | |
with: | |
name: ${{ github.ref_name }} | |
allowUpdates: true | |
omitBodyDuringUpdate: true | |
artifacts: ${{ matrix.config.artifact-path }} |