name: Build & Deploy Engine on: [push, pull_request] jobs: build: runs-on: ${{ matrix.os }} continue-on-error: true strategy: fail-fast: false matrix: include: - os: ubuntu-18.04 targetos: linux targetarch: amd64 - os: ubuntu-18.04 targetos: linux targetarch: i386 - os: ubuntu-18.04 targetos: android targetarch: 32 - os: ubuntu-18.04 targetos: android targetarch: 64 - os: ubuntu-18.04 targetos: motomagx targetarch: armv6 - os: windows-latest targetos: win32 targetarch: amd64 - os: windows-latest targetos: win32 targetarch: i386 env: SDL_VERSION: 2.0.14 GH_CPU_ARCH: ${{ matrix.targetarch }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ANDROID_SDK_TOOLS_VER: 4333796 ANDROID_NDK_VER: r10e UPLOADTOOL_ISPRERELEASE: true PVS_URL: https://files.pvs-studio.com/pvs-studio-7.14.50353.142-x86_64.tgz PVS_VERSION: pvs-studio-7.14.50353.142-x86_64 steps: - name: Checkout uses: actions/checkout@v2 with: submodules: recursive - name: Checkout xash-extras uses: actions/checkout@v2 with: repository: FWGS/xash-extras path: xash-extras - name: Install dependencies run: bash scripts/gha/deps_${{ matrix.targetos }}.sh - name: Build engine run: bash scripts/gha/build_${{ matrix.targetos }}.sh - name: Upload engine (android) if: matrix.targetos == 'android' run: bash scripts/continious_upload.sh xashdroid-${{ matrix.targetarch }}.apk - name: Upload engine (motomagx) if: matrix.targetos == 'motomagx' run: bash scripts/continious_upload.sh xash3d-fwgs-magx.7z - name: Upload engine (linux) if: matrix.targetos == 'linux' run: bash scripts/continious_upload.sh xash3d-fwgs-${{ matrix.targetarch }}.AppImage xashds-linux-${{ matrix.targetarch }} - name: Upload engine (windows) if: matrix.targetos == 'win32' run: bash scripts/continious_upload.sh xash3d-fwgs-win32-${{ matrix.targetarch }}.7z xash3d-fwgs-vc2008-sln-${{ matrix.targetarch }}.7z - name: Cache PVS-Studio if: matrix.targetos == 'linux' && matrix.targetarch == 'amd64' id: cache-pvs-studio uses: actions/cache@v2 with: path: pvs-studio.tgz key: pvs-studio-key - name: Get PVS-Studio if: matrix.targetos == 'linux' && matrix.targetarch == 'amd64' && steps.cache-pvs-studio.outputs.cache-hit != 'true' run: wget --no-verbose ${{ env.PVS_URL }} -O pvs-studio.tgz - name: Static analysis if: matrix.targetos == 'linux' && matrix.targetarch == 'amd64' run: | tar -xvf pvs-studio.tgz && mv ${{ env.PVS_VERSION }} pvs-studio pvs-studio/bin/pvs-studio-analyzer credentials ${{ secrets.PVS_NAME }} ${{ secrets.PVS_KEY }} pvs-studio/bin/pvs-studio-analyzer analyze --file build/compile_commands.json -j3 pvs-studio/bin/plog-converter -a GA:1,2 -t sarif -o report.sarif PVS-Studio.log - name: Upload SARIF if: matrix.targetos == 'linux' && matrix.targetarch == 'amd64' uses: github/codeql-action/upload-sarif@v1 with: sarif_file: report.sarif