name: Linux on: push: branches: - 'develop' - 'minor' pull_request: env: VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" VCPKG_FORCE_SYSTEM_BINARIES: 1 CMAKE_BUILD_TYPE: "Release" DEBIAN_FRONTEND: "noninteractive" jobs: x86_64-matrix: runs-on: ubuntu-22.04 strategy: matrix: include: - distro: debian version: 11 - distro: debian version: 12 - distro: ubuntu version: 22.04 - distro: ubuntu version: 24.04 container: image: ${{ matrix.distro }}:${{ matrix.version }} steps: - name: get-cmake uses: lukka/get-cmake@v3.28.1 - name: Export GitHub Actions cache environment variables uses: actions/github-script@v6 with: script: | core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); - name: Install git run: | apt-get update -y apt-get install -y git - uses: actions/checkout@v2 with: submodules: 'recursive' - name: Git config safe directory shell: bash run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/1.5-git-safe.sh - name: Install Dependencies run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/1-install-deps.sh - name: Create Build Environment run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/2-configure.sh '-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake' - name: Build Server run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/3-build.sh - name: Archive server artifact uses: actions/upload-artifact@v4 with: name: BeamMP-Server.${{ matrix.distro }}.${{ matrix.version }}.x86_64 path: ./bin/BeamMP-Server - name: Archive server debug info artifact uses: actions/upload-artifact@v4 with: name: debuginfo.${{ matrix.distro }}.${{ matrix.version }}.x86_64 path: ./bin/BeamMP-Server.debug - name: Build Tests run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/3-build-tests.sh - name: Install Runtime Dependencies run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/4-install-runtime-deps.sh - name: Test run: ./bin/BeamMP-Server-tests arm64-matrix: runs-on: [Linux, ARM64] env: VCPKG_DEFAULT_TRIPLET: "arm64-linux" strategy: matrix: include: - distro: debian version: 11 - distro: debian version: 12 - distro: ubuntu version: 22.04 - distro: ubuntu version: 24.04 container: image: ${{ matrix.distro }}:${{ matrix.version }} steps: - name: get-cmake uses: lukka/get-cmake@v3.28.1 - name: Export GitHub Actions cache environment variables uses: actions/github-script@v6 with: script: | core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); - name: Install git run: | apt-get update -y apt-get install -y git - uses: actions/checkout@v2 with: submodules: 'recursive' - name: Git config safe directory shell: bash run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/1.5-git-safe.sh - name: Install Dependencies run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/1-install-deps.sh - name: Create Build Environment run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/2-configure.sh '-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake' - name: Build Server run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/3-build.sh - name: Archive server artifact uses: actions/upload-artifact@v4 with: name: BeamMP-Server.${{ matrix.distro }}.${{ matrix.version }}.arm64 path: ./bin/BeamMP-Server - name: Archive server debug info artifact uses: actions/upload-artifact@v4 with: name: debuginfo.${{ matrix.distro }}.${{ matrix.version }}.arm64 path: ./bin/BeamMP-Server.debug - name: Build Tests run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/3-build-tests.sh - name: Install Runtime Dependencies run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/4-install-runtime-deps.sh - name: Test run: ./bin/BeamMP-Server-tests