Heretic: Fix bug with nightmare like monster respawn was happening on… #1906
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: | |
| branches: ["*"] | |
| tags-ignore: ["*"] | |
| pull_request: | |
| branches: ["*"] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| Windows: | |
| name: ${{ matrix.config.display_name }} | |
| runs-on: ${{ matrix.config.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| config: | |
| - | |
| display_name: "Windows | x64 | GCC" | |
| runner: "windows-2025" | |
| shell: "msys2 {0}" | |
| msys_msystem: "UCRT64" | |
| msys_prefix: "ucrt-x86_64" | |
| compiler_name: "gcc" | |
| cmake_preset: 'ci-msys2-dev' | |
| build_suffix: "x64-gcc" | |
| - | |
| display_name: "Windows | x64 | Clang" | |
| runner: "windows-2025" | |
| shell: "msys2 {0}" | |
| msys_msystem: "CLANG64" | |
| msys_prefix: "clang-x86_64" | |
| compiler_name: "clang" | |
| cmake_preset: 'ci-msys2-dev' | |
| build_suffix: "x64-clang" | |
| - | |
| display_name: "Windows | x86" | |
| runner: "windows-2025" | |
| shell: "bash" | |
| msvc_triplet: "x86-windows" | |
| msvc_triplet_path: 'cmake/triplets/x86-windows.cmake' | |
| compiler_name: "cl" | |
| cmake_preset: 'ci-msvc-86-dev' | |
| build_suffix: "x86" | |
| - | |
| display_name: "Windows | x64" | |
| runner: "windows-2025" | |
| shell: "bash" | |
| msvc_triplet: "x64-windows" | |
| msvc_triplet_path: 'cmake/triplets/x64-windows.cmake' | |
| compiler_name: "cl" | |
| cmake_preset: 'ci-msvc-64-dev' | |
| build_suffix: "x64" | |
| permissions: | |
| actions: write | |
| defaults: | |
| run: | |
| shell: ${{ matrix.config.shell }} | |
| env: | |
| VCPKG_BINARY_SOURCES: "clear;files,${{ github.workspace }}/vcpkg_cache,readwrite" | |
| steps: | |
| - name: Setup MSYS env | |
| if: matrix.config.compiler_name != 'cl' | |
| timeout-minutes: 10 | |
| uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: ${{ matrix.config.msys_msystem }} | |
| update: true | |
| install: >- | |
| mingw-w64-${{ matrix.config.msys_prefix }}-pkgconf | |
| mingw-w64-${{ matrix.config.msys_prefix }}-${{ matrix.config.compiler_name }} | |
| mingw-w64-${{ matrix.config.msys_prefix }}-gdb | |
| mingw-w64-${{ matrix.config.msys_prefix }}-ninja | |
| mingw-w64-${{ matrix.config.msys_prefix }}-cmake | |
| mingw-w64-${{ matrix.config.msys_prefix }}-SDL2 | |
| mingw-w64-${{ matrix.config.msys_prefix }}-SDL2_net | |
| mingw-w64-${{ matrix.config.msys_prefix }}-SDL2_mixer | |
| mingw-w64-${{ matrix.config.msys_prefix }}-libsamplerate | |
| git | |
| - name: Restore MSVC cache | |
| if: matrix.config.build_suffix == 'x86' | |
| id: msvc_cache | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: ${{ github.workspace }}/choco_cache | |
| key: vs-${{ matrix.config.msvc_triplet }} | |
| - name: Install MSVC 2019 | |
| if: matrix.config.build_suffix == 'x86' | |
| run: | | |
| choco config set cacheLocation "${{ github.workspace }}/choco_cache" | |
| choco install visualstudio2019buildtools --package-parameters " \ | |
| --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 \ | |
| --add Microsoft.VisualStudio.Component.WinXP \ | |
| --add Microsoft.VisualStudio.Component.VC.v141.x86.x64" | |
| cd "${{ github.workspace }}/choco_cache" && rm **.log **log.txt | |
| # cp "${{ github.workspace }}/choco_cache/$(cd "${{ github.workspace }}/choco_cache" && ls | grep -E "dd_setup_[0-9]+.log" | tail -1)" "${{ github.workspace }}/vs_log.txt" | |
| # - name: upload log | |
| # if: matrix.config.build_suffix == 'x86' | |
| # uses: actions/upload-artifact@v4 | |
| # with: | |
| # name: vs_log | |
| # path: vs_log.txt | |
| # Delete the old cache on hit to emulate a cache update. | |
| # The actions/cache@v4 action doesn't update cache on hit, | |
| # and we don't have a way to add a toolset version to key before it is installed. | |
| - name: Delete MSVC cache | |
| if: matrix.config.build_suffix == 'x86' && steps.msvc_cache.outputs.cache-hit | |
| continue-on-error: true | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: gh cache delete --repo ${{ github.repository }} ${{ steps.msvc_cache.outputs.cache-primary-key }} | |
| - name: Save MSVC cache | |
| if: matrix.config.build_suffix == 'x86' | |
| uses: actions/cache/save@v4 | |
| with: | |
| path: ${{ github.workspace }}/choco_cache | |
| key: ${{ steps.msvc_cache.outputs.cache-primary-key }} | |
| - name: Bootstrap VCPKG | |
| if: matrix.config.compiler_name == 'cl' | |
| run: | | |
| cd $VCPKG_INSTALLATION_ROOT | |
| echo "vcpkg revision: $(git rev-parse HEAD)" | |
| ./bootstrap-vcpkg.sh -disableMetrics | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Restore VCPKG dependencies cache | |
| if: matrix.config.compiler_name == 'cl' | |
| id: vcpkg_cache | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: ${{ github.workspace }}/vcpkg_cache | |
| key: vcpkg-${{ matrix.config.msvc_triplet }}-${{ hashFiles('vcpkg.json', matrix.config.msvc_triplet_path) }} | |
| restore-keys: vcpkg-${{ matrix.config.msvc_triplet }}- | |
| - name: Configure & Build & Test | |
| id: configure | |
| env: | |
| CC: ${{ matrix.config.compiler_name }} | |
| run: | | |
| export MAKEFLAGS=--keep-going | |
| cmake --workflow --preset "${{ matrix.config.cmake_preset }}" | |
| git_version=$(cmake -P ./cmake/scripts/UpdateRevision.cmake "git" 2>&1) | |
| echo "version=$git_version" >> $GITHUB_OUTPUT | |
| # Delete the old cache on hit to emulate a cache update. | |
| # The actions/cache@v4 action doesn't update cache on hit, | |
| # and we don't have a way to add package versions to key before they are installed. | |
| - name: Delete VCPKG dependencies cache | |
| if: matrix.config.compiler_name == 'cl' && steps.vcpkg_cache.outputs.cache-hit | |
| continue-on-error: true | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: gh cache delete --repo ${{ github.repository }} ${{ steps.vcpkg_cache.outputs.cache-primary-key }} | |
| - name: Save VCPKG dependencies cache | |
| if: matrix.config.compiler_name == 'cl' | |
| uses: actions/cache/save@v4 | |
| with: | |
| path: ${{ github.workspace }}/vcpkg_cache | |
| key: ${{ steps.vcpkg_cache.outputs.cache-primary-key }} | |
| - name: Install | |
| if: | | |
| github.repository == 'Russian-Doom/russian-doom' && | |
| github.event_name == 'push' && | |
| github.ref == 'refs/heads/master' | |
| run: | | |
| cmake --install build --config RelWithDebInfo --prefix "./build/install" | |
| - name: Package Zip | |
| if: | | |
| github.repository == 'Russian-Doom/russian-doom' && | |
| github.event_name == 'push' && | |
| github.ref == 'refs/heads/master' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: russian-doom-${{ steps.configure.outputs.version }}-windows-${{ matrix.config.build_suffix }} | |
| path: ./build/install/ | |
| Linux: | |
| name: Linux | ${{ matrix.distro.display_name }} | ${{ matrix.platform.arch }} | |
| runs-on: ${{ matrix.platform.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| distro: | |
| - | |
| display_name: Debian | |
| distro: debian | |
| package: deb | |
| dockerfile: '.devcontainer/Debian.dockerfile' | |
| - | |
| display_name: Fedora | |
| distro: fedora | |
| package: rpm | |
| dockerfile: '.devcontainer/Fedora.dockerfile' | |
| platform: | |
| - | |
| runner: 'ubuntu-24.04' | |
| arch: "x64" | |
| - | |
| runner: 'ubuntu-24.04-arm' | |
| arch: "arm64" | |
| defaults: | |
| run: | |
| shell: bash | |
| steps: | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| with: | |
| install: true | |
| driver: docker | |
| # Invalidate cache for docker toolchain images every month to update dependencies | |
| - name: Get build month for Docker cache | |
| id: date | |
| run: echo "date=$(date +'%Y%m')" >> $GITHUB_OUTPUT | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Cache Docker images | |
| uses: AndreKurait/docker-cache@0.6.0 | |
| with: | |
| key: docker-${{ matrix.platform.arch }}-${{ hashFiles(matrix.distro.dockerfile) }}-${{ steps.date.outputs.date }} | |
| - name: Toolchain & Configure & Build & Test & Package | |
| id: configure | |
| run: | | |
| chmod 777 . | |
| ./crosscompile_linux_packages.sh ci ${{ matrix.distro.distro }} | |
| git_version=$(cmake -P ./cmake/scripts/UpdateRevision.cmake "git" 2>&1) | |
| echo "version=$git_version" >> $GITHUB_OUTPUT | |
| - name: Upload package | |
| if: | | |
| github.repository == 'Russian-Doom/russian-doom' && | |
| github.event_name == 'push' && | |
| github.ref == 'refs/heads/master' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: russian-doom-${{ steps.configure.outputs.version }}-linux-${{ matrix.distro.package }}-${{ matrix.platform.arch }} | |
| path: ./build/*.${{ matrix.distro.package }} |