You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
3.3 KiB
96 lines
3.3 KiB
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
|
|
|