name: Build & Deploy Engine on: [push, pull_request] jobs: # cleanup: # runs-on: self-hosted # steps: # - name: Cleanup # run: rm -rf .* || true build: runs-on: ${{ matrix.os }} continue-on-error: true strategy: fail-fast: false matrix: include: # Linux build specifically want oldest Ubuntu as possible # to be crossdistribution compatible, otherwise use ubuntu-latest - os: ubuntu-20.04 targetos: linux targetarch: amd64 - os: ubuntu-20.04 targetos: linux targetarch: i386 # - os: ubuntu-aarch64-20.04 # targetos: linux # targetarch: aarch64 - os: ubuntu-20.04 targetos: android targetarch: multiarch # - os: ubuntu-20.04 # targetos: motomagx # targetarch: armv6 - os: ubuntu-latest targetos: nswitch targetarch: arm64 - os: ubuntu-latest targetos: psvita targetarch: armv7hf - os: windows-latest targetos: win32 targetarch: amd64 - os: windows-2019 # always use the oldest possible for 32-bit because of older compilers, and better support of certain legacy OSes targetos: win32 targetarch: i386 env: SDL_VERSION: 2.28.5 GH_CPU_ARCH: ${{ matrix.targetarch }} steps: - name: Checkout uses: actions/checkout@v3 with: submodules: recursive - 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 (artifacts) uses: actions/upload-artifact@v3 with: name: artifact-${{ matrix.targetos }}-${{ matrix.targetarch }} path: artifacts/* flatpak: name: "Flatpak" runs-on: ubuntu-latest strategy: matrix: include: - app: su.xash.Engine.Compat.i386 container: image: bilelmoussaoui/flatpak-github-actions:freedesktop-22.08 options: --privileged steps: - name: Checkout uses: actions/checkout@v3 with: submodules: recursive - name: Build flatpak (Compat.i386) uses: FWGS/flatpak-github-actions/flatpak-builder@v6.1 with: bundle: ${{ matrix.app }}.flatpak manifest-path: scripts/flatpak/${{ matrix.app }}.yml - name: Upload engine (artifacts) uses: actions/upload-artifact@v3 with: name: artifact-${{ matrix.targetos }}-${{ matrix.targetarch }} path: artifacts/* release: name: "Upload releases" runs-on: ubuntu-latest needs: [build, flatpak] if: ${{ github.event_name == 'push' }} steps: - name: Remove old release uses: FWGS/delete-tag-and-release@v0.2.1-dev with: tag_name: ${{ github.ref_name == 'master' && 'continuous' || format('continuous-{0}', github.ref_name) }} delete_release: true github_token: ${{ secrets.GITHUB_TOKEN }} - name: Fetch artifacts uses: actions/download-artifact@v3.0.1 with: path: artifacts/ - name: Repackage binaries and allow GitHub to process removed release for few seconds run: | cd artifacts/ for i in artifact-* su.xash.Engine.*; do mv "$i"/* . rm -rf "$i" done ls -R . cd ../ sleep 20s - name: Upload new release uses: FWGS/action-gh-release@v0.1.15 with: name: Xash3D FWGS Continuous ${{ github.ref_name }} Build tag_name: ${{ github.ref_name == 'master' && 'continuous' || format('continuous-{0}', github.ref_name) }} prerelease: true token: ${{ secrets.GITHUB_TOKEN }} files: artifacts/* draft: false