diff --git a/.github/workflows/linux_build.yml b/.github/workflows/linux_build.yml index c0bd226d..44f25684 100644 --- a/.github/workflows/linux_build.yml +++ b/.github/workflows/linux_build.yml @@ -10,7 +10,7 @@ on: - ready_for_review env: - GH_CACHE_KEY: 3 + GH_CACHE_KEY: 4 jobs: build: @@ -18,10 +18,15 @@ jobs: fail-fast: false matrix: env: [ - {build_type: Release, arch: x86_64, cmake: ""}, - {build_type: Debug, arch: x86_64, cmake: ""}, + {name: "Release", build_type: Release, arch: x86_64, upload: true, cmake: ""}, + {name: "Debug", build_type: Debug, arch: x86_64, upload: true, cmake: ""}, + {name: "Debug D3D9 + Sokol + Asserts", build_type: Debug, arch: x86_64, upload: false, cmake: "-DOPTION_D3D9=ON -DOPTION_SOKOL=ON -DOPTION_DEBUG_ASSERT=ON"}, + {name: "Release D3D9 + Sokol", build_type: Release, arch: x86_64, upload: false, cmake: "-DOPTION_D3D9=ON -DOPTION_SOKOL=ON"}, + {name: "Debug D3D9", build_type: Debug, arch: x86_64, upload: false, cmake: "-DOPTION_D3D9=ON -DOPTION_SOKOL=OFF"}, + {name: "Debug Sokol", build_type: Debug, arch: x86_64, upload: false, cmake: "-DOPTION_D3D9=OFF -DOPTION_SOKOL=ON"}, + {name: "Scripts Check", build_type: Release, arch: x86_64, upload: false, cmake: "-DOPTION_CHECK_SCRIPTS=ON "}, ] - name: ${{matrix.env.build_type}} ${{matrix.env.arch}} + name: ${{matrix.env.name}} ${{matrix.env.arch}} if: github.event.pull_request.draft != true runs-on: ubuntu-latest container: @@ -55,6 +60,10 @@ jobs: ./docker/linux/prepare_sdl_pkgs ./docker/linux/prepare_sdl if: steps.cache.outputs.cache-hit != 'true' + - name: Scripts check + run: ninja ScriptsCheck + working-directory: build + if: matrix.env.name == 'Scripts Check' - name: build run: | chmod a+x ./docker/linux/builder @@ -62,47 +71,9 @@ jobs: ./docker/linux/builder \ -DCMAKE_BUILD_TYPE=${{matrix.env.build_type}} \ ${{matrix.env.cmake}} + if: matrix.env.name != 'Scripts Check' - uses: actions/upload-artifact@v4 with: name: Perimeter ${{matrix.env.build_type}} ${{matrix.env.arch}} path: ./build/docker-linux/output/Perimeter.tar - check_build: - strategy: - fail-fast: false - matrix: - env: [ - {build_type: Release, arch: x86_64, name: "D3D9 + Sokol", cmake: "-DOPTION_D3D9=ON -DOPTION_SOKOL=ON"}, - {build_type: Debug, arch: x86_64, name: "D3D9 + Sokol + Asserts", cmake: "-DOPTION_D3D9=ON -DOPTION_SOKOL=ON -DOPTION_DEBUG_ASSERT=ON"}, - {build_type: Debug, arch: x86_64, name: "D3D9", cmake: "-DOPTION_D3D9=ON -DOPTION_SOKOL=OFF"}, - {build_type: Debug, arch: x86_64, name: "Sokol", cmake: "-DOPTION_D3D9=OFF -DOPTION_SOKOL=ON"}, - {build_type: Release, arch: x86_64, name: "Scripts Check", cmake: "-DOPTION_CHECK_SCRIPTS=ON "}, - ] - name: Check build ${{matrix.env.build_type}} ${{matrix.env.arch}} ${{matrix.env.name}} - if: github.event.pull_request.draft != true - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: update repos - run: sudo apt-get update - - name: install libs - run: sudo apt-get install cmake meson libsdl2-dev libsdl2-image-dev libsdl2-net-dev libsdl2-mixer-dev libboost-dev libavcodec-dev libavformat-dev libavfilter-dev libswscale-dev zlib1g-dev libvulkan-dev glslang-tools lld - - name: create build dir - run: mkdir build - - name: prepare boost - run: | - chmod a+x ./docker/prepare_boost - sudo ./docker/prepare_boost - - name: configure - run: cmake .. -G Ninja - -DCMAKE_BUILD_TYPE=${{matrix.env.build_type}} - -DOPTION_DEBUG_ASSERT=ON - ${{matrix.env.cmake}} - working-directory: build - - name: Scripts check - run: ninja ScriptsCheck - working-directory: build - if: matrix.env.name == 'Scripts Check' - - name: build project - run: ninja - working-directory: build - if: matrix.env.name != 'Scripts Check' + if: matrix.env.upload