Implement multi-approach fix for startup sound on macOS #68
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] | |
| jobs: | |
| build: | |
| name: ${{ matrix.config.name }} | ${{ matrix.config.build_type }} | |
| runs-on: ${{ matrix.config.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| config: | |
| - name: Visual Studio 2022 | |
| os: windows-2022 | |
| build_type: Release | |
| - name: Visual Studio 2022 | |
| os: windows-2022 | |
| build_type: Debug | |
| - name: macOS | |
| os: macos-14 | |
| deps_cmdline: brew install libvpx molten-vk vulkan-volk | |
| build_type: Release | |
| - name: macOS | |
| os: macos-14 | |
| extra_options: -G Xcode -DDYN_OPENAL=OFF | |
| deps_cmdline: brew install libvpx molten-vk vulkan-volk | |
| build_type: Debug | |
| - name: Linux GCC 9 # oldest version available | |
| os: ubuntu-22.04 | |
| extra_options: -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9 | |
| deps_cmdline: sudo apt-get update && sudo apt-get install libsdl2-dev libvpx-dev libgtk2.0-dev libwebp-dev | |
| build_type: RelWithDebInfo | |
| - name: Linux GCC 12 # last known good | |
| os: ubuntu-22.04 | |
| extra_options: -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12 | |
| deps_cmdline: sudo apt-get update && sudo apt-get install libsdl2-dev libvpx-dev libgtk-3-dev libwebp-dev | |
| build_type: MinSizeRel | |
| export_appimage: true | |
| - name: Linux GCC Latest # rolling default, not actually latest | |
| os: ubuntu-latest | |
| extra_options: -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ | |
| deps_cmdline: sudo apt-get update && sudo apt-get install libsdl2-dev libvpx-dev libwebp-dev | |
| build_type: Release | |
| export_appimage: true | |
| - name: Linux Clang 11 # oldest version available | |
| os: ubuntu-22.04 | |
| extra_options: -DCMAKE_C_COMPILER=clang-11 -DCMAKE_CXX_COMPILER=clang++-11 -DDYN_OPENAL=OFF | |
| deps_cmdline: sudo apt-get update && sudo apt-get install clang-11 libsdl2-dev libvpx-dev libopenal-dev libwebp-dev | |
| build_type: Debug | |
| - name: Linux Clang 15 # last known good | |
| os: ubuntu-22.04 | |
| extra_options: -DCMAKE_C_COMPILER=clang-15 -DCMAKE_CXX_COMPILER=clang++-15 | |
| deps_cmdline: sudo apt-get update && sudo apt-get install clang-15 libsdl2-dev libvpx-dev libwebp-dev | |
| build_type: Release | |
| export_appimage: true | |
| - name: Linux Clang Latest # rolling default, not actually latest | |
| os: ubuntu-latest | |
| extra_options: -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ | |
| deps_cmdline: sudo apt-get update && sudo apt-get install libsdl2-dev libvpx-dev libwebp-dev | |
| build_type: Release | |
| export_appimage: true | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Dependencies | |
| shell: bash | |
| run: | | |
| if [[ -n "${{ matrix.config.deps_cmdline }}" ]]; then | |
| eval ${{ matrix.config.deps_cmdline }} | |
| fi | |
| mkdir build | |
| - name: Git describe | |
| id: ghd | |
| uses: proudust/gh-describe@v2 | |
| - name: Configure | |
| shell: bash | |
| run: | | |
| cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DPK3_QUIET_ZIPDIR=ON ${{ matrix.config.extra_options }} . | |
| - name: Build | |
| shell: bash | |
| run: | | |
| export GIT_DESCRIBE="${{ steps.ghd.outputs.describe }}" | |
| export MAKEFLAGS=--keep-going | |
| cmake --build build --config ${{ matrix.config.build_type }} --parallel 3 | |
| - name: Create Package | |
| shell: bash | |
| run: | | |
| cd build | |
| mkdir package | |
| if [[ "${{ runner.os }}" == 'Windows' ]]; then | |
| cp ${{ matrix.config.build_type }}/gzdoom.exe ${{ matrix.config.build_type }}/*.pk3 ${{ matrix.config.build_type }}/zmusic.dll package | |
| elif [[ "${{ runner.os }}" == 'macOS' ]]; then | |
| if [[ "${{ matrix.config.build_type }}" != 'Release' ]]; then | |
| mv ${{ matrix.config.build_type }}/gzdoom.app gzdoom.app | |
| fi | |
| cp -r gzdoom.app package | |
| elif [[ "${{ runner.os }}" == 'Linux' ]]; then | |
| if [[ -n "${{ matrix.config.export_appimage }}" ]]; then | |
| mkdir AppDir | |
| cmake --install . --prefix "$(realpath AppDir)/usr" | |
| sudo apt-get install libfuse2 # renamed to libfuse2t64 in later releases | |
| wget -qO - https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage \ | |
| | tee appimage-builder | sha1sum | |
| echo "6f83a789f6c47a745b97d1b0b3f1df2e7eea7a09 appimage-builder" | sha1sum -c - | |
| chmod +x appimage-builder | |
| export GIT_DESCRIBE="${{ steps.ghd.outputs.describe }}" | |
| ./appimage-builder --skip-tests --recipe ../tools/AppImageBuilder.yml | |
| cp *.AppImage package | |
| else | |
| cp gzdoom *.pk3 libzmusic.so* package | |
| fi | |
| fi | |
| - name: Upload Package | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: build/package | |
| name: ${{ matrix.config.name }} ${{ matrix.config.build_type }} | |
| - name: List Build Directory | |
| if: always() | |
| shell: bash | |
| run: | | |
| git status | |
| ls -lR build |