Merge branch 'main' of https://github.com/themuffinator/OpenQ4 #4
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: Push Verification | |
| on: | |
| push: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: openq4-push-verification-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| script-smoke: | |
| name: Validation Script Smoke | |
| runs-on: ubuntu-24.04 | |
| env: | |
| OPENQ4_GAMELIBS_REPO: ${{ github.workspace }}/../OpenQ4-GameLibs | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Fetch OpenQ4-GameLibs | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| git clone --depth 1 https://github.com/themuffinator/OpenQ4-GameLibs.git "${OPENQ4_GAMELIBS_REPO}" | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.x" | |
| - name: Check validation script syntax | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| python -m py_compile tools/validation/openq4_validate.py | |
| bash -n tools/build/meson_setup.sh | |
| bash -n tools/validation/validate_push.sh | |
| bash -n tools/validation/validate_pr.sh | |
| python tools/tests/hdr_postprocess_math.py | |
| - name: Dry-run push profile | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| bash tools/validation/validate_push.sh --dry-run | |
| posix-builds: | |
| name: ${{ matrix.name }} | |
| needs: script-smoke | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 90 | |
| env: | |
| OPENQ4_GAMELIBS_REPO: ${{ github.workspace }}/../OpenQ4-GameLibs | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: Linux Push Verification | |
| os: ubuntu-24.04 | |
| artifact_name: linux | |
| - name: macOS Push Verification | |
| os: macos-15 | |
| artifact_name: macos | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Fetch OpenQ4-GameLibs | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| git clone --depth 1 https://github.com/themuffinator/OpenQ4-GameLibs.git "${OPENQ4_GAMELIBS_REPO}" | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.x" | |
| - name: Install Meson and Ninja | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| python -m pip install --upgrade pip | |
| python -m pip install meson ninja | |
| - name: Run push verification | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| bash tools/validation/validate_push.sh --install --fail-on-dirty | |
| - name: Publish staged payload | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: push-${{ matrix.artifact_name }}-payload | |
| path: .install | |
| if-no-files-found: warn | |
| retention-days: 14 | |
| windows-build: | |
| name: Windows Push Verification | |
| needs: script-smoke | |
| runs-on: windows-2025 | |
| timeout-minutes: 90 | |
| env: | |
| OPENQ4_GAMELIBS_REPO: ${{ github.workspace }}/../OpenQ4-GameLibs | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Fetch OpenQ4-GameLibs | |
| shell: pwsh | |
| run: | | |
| $ErrorActionPreference = "Stop" | |
| git clone --depth 1 https://github.com/themuffinator/OpenQ4-GameLibs.git "$env:OPENQ4_GAMELIBS_REPO" | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.x" | |
| - name: Install Meson and Ninja | |
| shell: pwsh | |
| run: | | |
| $ErrorActionPreference = "Stop" | |
| python -m pip install --upgrade pip | |
| python -m pip install meson ninja | |
| - name: Run push verification | |
| shell: pwsh | |
| run: | | |
| $ErrorActionPreference = "Stop" | |
| powershell -NoProfile -ExecutionPolicy Bypass -File tools/validation/validate_push.ps1 --install --fail-on-dirty | |
| - name: Publish staged payload | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: push-windows-payload | |
| path: .install | |
| if-no-files-found: warn | |
| retention-days: 14 |