make all ci/cd build actions matrix generic

This commit is contained in:
Lion Kortlepel
2024-01-08 10:28:30 +01:00
committed by Lion
parent c62a1b6add
commit 9d5568dc56
2 changed files with 98 additions and 190 deletions
+45 -159
View File
@@ -9,10 +9,22 @@ env:
CMAKE_BUILD_TYPE: "Release" CMAKE_BUILD_TYPE: "Release"
jobs: jobs:
debian-11-build: x86_64-matrix:
runs-on: ubuntu-latest runs-on: ubuntu-22.04
needs: create-release
strategy:
matrix:
include:
- distro: debian
version: 11
- distro: debian
version: 12
- distro: ubuntu
version: 22.04
- distro: ubuntu
version: 20.04
container: container:
image: debian:11 image: ${{ matrix.distro }}:${{ matrix.version }}
steps: steps:
- name: get-cmake - name: get-cmake
uses: lukka/get-cmake@v3.28.1 uses: lukka/get-cmake@v3.28.1
@@ -35,112 +47,57 @@ jobs:
- name: Git config safe directory - name: Git config safe directory
shell: bash shell: bash
run: bash ./scripts/debian-11/1.5-git-safe.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/1.5-git-safe.sh
- name: Install Dependencies - name: Install Dependencies
run: bash ./scripts/debian-11/1-install-deps.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/1-install-deps.sh
- name: Create Build Environment - name: Create Build Environment
run: bash ./scripts/debian-11/2-configure.sh '-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake' run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/2-configure.sh '-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake'
- name: Build Server - name: Build Server
run: bash ./scripts/debian-11/3-build.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/3-build.sh
- name: Archive server artifact - name: Archive server artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: BeamMP-Server-debian name: BeamMP-Server.${{ matrix.distro }}.${{ matrix.version }}.x86_64
path: ./bin/BeamMP-Server path: ./bin/BeamMP-Server
- name: Archive server debug info artifact - name: Archive server debug info artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: BeamMP-Server-debian.debug name: debuginfo.${{ matrix.distro }}.${{ matrix.version }}.x86_64
path: ./bin/BeamMP-Server.debug path: ./bin/BeamMP-Server.debug
- name: Build Tests - name: Build Tests
run: bash ./scripts/debian-11/3-build-tests.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/3-build-tests.sh
- name: Install Runtime Dependencies - name: Install Runtime Dependencies
run: bash ./scripts/debian-11/4-install-runtime-deps.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/4-install-runtime-deps.sh
- name: Test - name: Test
run: ./bin/BeamMP-Server-tests run: ./bin/BeamMP-Server-tests
debian-11-arm64-build: arm64-matrix:
runs-on: [Linux, ARM64] runs-on: [Linux, ARM64]
container: needs: create-release
image: debian:11
env: env:
VCPKG_DEFAULT_TRIPLET: "arm64-linux" VCPKG_DEFAULT_TRIPLET: "arm64-linux"
steps: strategy:
- uses: actions/setup-node@v4 matrix:
include:
- name: get-cmake - distro: debian
uses: lukka/get-cmake@v3.28.1 version: 11
- distro: debian
- name: Export GitHub Actions cache environment variables version: 12
uses: actions/github-script@v6 - distro: ubuntu
with: version: 22.04
script: | - distro: ubuntu
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); version: 20.04
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/debian-11/1.5-git-safe.sh
- name: Install Dependencies
run: bash ./scripts/debian-11/1-install-deps.sh
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
runVcpkgInstall: true
- name: Create Build Environment
run: bash ./scripts/debian-11/2-configure.sh '-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake'
- name: Build Server
run: bash ./scripts/debian-11/3-build.sh
- name: Archive server artifact
uses: actions/upload-artifact@v2
with:
name: BeamMP-Server-debian.arm64
path: ./bin/BeamMP-Server
- name: Archive server debug info artifact
uses: actions/upload-artifact@v2
with:
name: BeamMP-Server-debian.arm64.debug
path: ./bin/BeamMP-Server.debug
- name: Build Tests
run: bash ./scripts/debian-11/3-build-tests.sh
- name: Install Runtime Dependencies
run: bash ./scripts/debian-11/4-install-runtime-deps.sh
- name: Test
run: ./bin/BeamMP-Server-tests
ubuntu-22-04-build:
runs-on: ubuntu-latest
container: container:
image: ubuntu:22.04 image: ${{ matrix.distro }}:${{ matrix.version }}
steps: steps:
- uses: actions/setup-node@v4
- name: get-cmake - name: get-cmake
uses: lukka/get-cmake@v3.28.1 uses: lukka/get-cmake@v3.28.1
@@ -162,106 +119,35 @@ jobs:
- name: Git config safe directory - name: Git config safe directory
shell: bash shell: bash
run: bash ./scripts/ubuntu-22.04/1.5-git-safe.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/1.5-git-safe.sh
- name: Install Dependencies - name: Install Dependencies
run: bash ./scripts/ubuntu-22.04/1-install-deps.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/1-install-deps.sh
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
runVcpkgInstall: true
- name: Create Build Environment - name: Create Build Environment
run: bash ./scripts/ubuntu-22.04/2-configure.sh '-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake' run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/2-configure.sh '-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake'
- name: Build Server - name: Build Server
run: bash ./scripts/ubuntu-22.04/3-build.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/3-build.sh
- name: Archive server artifact - name: Archive server artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: BeamMP-Server-ubuntu name: BeamMP-Server.${{ matrix.distro }}.${{ matrix.version }}.arm64
path: ./bin/BeamMP-Server path: ./bin/BeamMP-Server
- name: Archive server debug info artifact - name: Archive server debug info artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: BeamMP-Server-ubuntu.debug name: debuginfo.${{ matrix.distro }}.${{ matrix.version }}.arm64
path: ./bin/BeamMP-Server.debug path: ./bin/BeamMP-Server.debug
- name: Build Tests - name: Build Tests
run: bash ./scripts/ubuntu-22.04/3-build-tests.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/3-build-tests.sh
- name: Install Runtime Dependencies - name: Install Runtime Dependencies
run: bash ./scripts/ubuntu-22.04/4-install-runtime-deps.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/4-install-runtime-deps.sh
- name: Test - name: Test
run: ./bin/BeamMP-Server-tests run: ./bin/BeamMP-Server-tests
ubuntu-22-04-arm64-build:
runs-on: [Linux, ARM64]
container:
image: ubuntu:22.04
env:
VCPKG_DEFAULT_TRIPLET: "arm64-linux"
steps:
- uses: actions/setup-node@v4
- 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/ubuntu-22.04/1.5-git-safe.sh
- name: Install Dependencies
run: bash ./scripts/ubuntu-22.04/1-install-deps.sh
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
runVcpkgInstall: true
- name: Create Build Environment
run: bash ./scripts/ubuntu-22.04/2-configure.sh '-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake'
- name: Build Server
run: bash ./scripts/ubuntu-22.04/3-build.sh
- name: Archive server artifact
uses: actions/upload-artifact@v2
with:
name: BeamMP-Server-ubuntu.arm64
path: ./bin/BeamMP-Server
- name: Archive server debug info artifact
uses: actions/upload-artifact@v2
with:
name: BeamMP-Server-ubuntu.arm64.debug
path: ./bin/BeamMP-Server.debug
- name: Build Tests
run: bash ./scripts/ubuntu-22.04/3-build-tests.sh
- name: Install Runtime Dependencies
run: bash ./scripts/ubuntu-22.04/4-install-runtime-deps.sh
- name: Test
run: ./bin/BeamMP-Server-tests
+50 -28
View File
@@ -27,18 +27,30 @@ jobs:
draft: false draft: false
prerelease: true prerelease: true
body: | body: |
Files included in this release: Files included in this release are: named after `BeamMP-Server.$DISTRO.$VERSION.$ARCH`, for example:
- `BeamMP-Server.exe` is the windows build. You need to install the [Visual C++ Redistributables](https://aka.ms/vs/17/release/vc_redist.x64.exe) to run this. - `BeamMP-Server.$DISTRO.$DISTROVERSION.$ARCH` for linux builds, for example `BeamMP-Server.debian.11.x86_64` for the Debian 11 build for x86_64. All require `liblua5.3` to be installed.
- `BeamMP-Server-debian` is a Debian 11 build, requires `liblua5.3-0`. - `BeamMP-Server.exe` for the Windows build (x86_64). You need to install the [Visual C++ Redistributables](https://aka.ms/vs/17/release/vc_redist.x64.exe) to run this.
- `BeamMP-Server-ubuntu` is a Ubuntu 22.04 build, requires `liblua5.3-0`.
upload-release-files-debian-11: x86_64-matrix:
name: Build and upload Debian 11 Release Files
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
needs: create-release needs: create-release
strategy:
matrix:
include:
- distro: debian
version: 11
- distro: debian
version: 12
- distro: ubuntu
version: 22.04
- distro: ubuntu
version: 20.04
container: container:
image: debian:11 image: ${{ matrix.distro }}:${{ matrix.version }}
steps: steps:
- name: get-cmake
uses: lukka/get-cmake@v3.28.1
- name: Export GitHub Actions cache environment variables - name: Export GitHub Actions cache environment variables
uses: actions/github-script@v6 uses: actions/github-script@v6
with: with:
@@ -57,21 +69,16 @@ jobs:
- name: Git config safe directory - name: Git config safe directory
shell: bash shell: bash
run: bash ./scripts/debian-11/1.5-git-safe.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/1.5-git-safe.sh
- name: Install Dependencies - name: Install Dependencies
run: bash ./scripts/debian-11/1-install-deps.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/1-install-deps.sh
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
runVcpkgInstall: true
- name: Create Build Environment - name: Create Build Environment
run: bash ./scripts/debian-11/2-configure.sh '-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake' run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/2-configure.sh '-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake'
- name: Build Server - name: Build Server
run: bash ./scripts/debian-11/3-build.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/3-build.sh
- name: Upload Release Asset - name: Upload Release Asset
id: upload-release-asset id: upload-release-asset
@@ -79,9 +86,9 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
asset_name: BeamMP-Server.${{ matrix.distro }}.${{ matrix.version }}.x86_64
upload_url: ${{ needs.create-release.outputs.upload_url }} upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ./bin/BeamMP-Server asset_path: ./bin/BeamMP-Server
asset_name: BeamMP-Server-debian
asset_content_type: application/x-elf asset_content_type: application/x-elf
- name: Upload Debug Info - name: Upload Debug Info
@@ -90,18 +97,33 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
asset_name: debuginfo.${{ matrix.distro }}.${{ matrix.version }}.x86_64
upload_url: ${{ needs.create-release.outputs.upload_url }} upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ./bin/BeamMP-Server.debug asset_path: ./bin/BeamMP-Server.debug
asset_name: debuginfo-debian.debug
asset_content_type: application/x-elf asset_content_type: application/x-elf
upload-release-files-ubuntu-22-04: arm64-matrix:
name: Build and upload Ubuntu 22.04 Release Files runs-on: [Linux, ARM64]
runs-on: ubuntu-22.04
needs: create-release needs: create-release
strategy:
matrix:
include:
- distro: debian
version: 11
- distro: debian
version: 12
- distro: ubuntu
version: 22.04
- distro: ubuntu
version: 20.04
env:
VCPKG_DEFAULT_TRIPLET: "arm64-linux"
container: container:
image: ubuntu:22.04 image: ${{ matrix.distro }}:${{ matrix.version }}
steps: steps:
- name: get-cmake
uses: lukka/get-cmake@v3.28.1
- name: Export GitHub Actions cache environment variables - name: Export GitHub Actions cache environment variables
uses: actions/github-script@v6 uses: actions/github-script@v6
with: with:
@@ -120,16 +142,16 @@ jobs:
- name: Git config safe directory - name: Git config safe directory
shell: bash shell: bash
run: bash ./scripts/ubuntu-22.04/1.5-git-safe.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/1.5-git-safe.sh
- name: Install Dependencies - name: Install Dependencies
run: bash ./scripts/ubuntu-22.04/1-install-deps.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/1-install-deps.sh
- name: Create Build Environment - name: Create Build Environment
run: bash ./scripts/ubuntu-22.04/2-configure.sh '-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake' run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/2-configure.sh '-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake'
- name: Build Server - name: Build Server
run: bash ./scripts/ubuntu-22.04/3-build.sh run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/3-build.sh
- name: Upload Release Asset - name: Upload Release Asset
id: upload-release-asset id: upload-release-asset
@@ -137,9 +159,9 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
asset_name: BeamMP-Server.${{ matrix.distro }}.${{ matrix.version }}.arm64
upload_url: ${{ needs.create-release.outputs.upload_url }} upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ./bin/BeamMP-Server asset_path: ./bin/BeamMP-Server
asset_name: BeamMP-Server-ubuntu
asset_content_type: application/x-elf asset_content_type: application/x-elf
- name: Upload Debug Info - name: Upload Debug Info
@@ -148,9 +170,9 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
asset_name: debuginfo.${{ matrix.distro }}.${{ matrix.version }}.arm64
upload_url: ${{ needs.create-release.outputs.upload_url }} upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ./bin/BeamMP-Server.debug asset_path: ./bin/BeamMP-Server.debug
asset_name: debuginfo-ubuntu.debug
asset_content_type: application/x-elf asset_content_type: application/x-elf
upload-release-files-windows: upload-release-files-windows: