add ci/cd from server

This commit is contained in:
Lion Kortlepel 2024-01-25 09:41:07 +01:00
parent 0d70012009
commit 2d0cbc4500
No known key found for this signature in database
GPG Key ID: 4322FF2B4C71259B
29 changed files with 386 additions and 0 deletions

152
.github/workflows/linux.yml vendored Normal file
View File

@ -0,0 +1,152 @@
name: Linux
on: [push]
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: 20.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 Launcher
run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/3-build.sh
- name: Archive launcher artifact
uses: actions/upload-artifact@v2
with:
name: BeamMP-Launcher.${{ matrix.distro }}.${{ matrix.version }}.x86_64
path: ./bin/BeamMP-Launcher
- name: Archive launcher debug info artifact
uses: actions/upload-artifact@v2
with:
name: debuginfo.${{ matrix.distro }}.${{ matrix.version }}.x86_64
path: ./bin/BeamMP-Launcher.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-Launcher-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: 20.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 Launcher
run: bash ./scripts/${{ matrix.distro }}-${{ matrix.version }}/3-build.sh
- name: Archive launcher artifact
uses: actions/upload-artifact@v2
with:
name: BeamMP-Launcher.${{ matrix.distro }}.${{ matrix.version }}.arm64
path: ./bin/BeamMP-Launcher
- name: Archive launcher debug info artifact
uses: actions/upload-artifact@v2
with:
name: debuginfo.${{ matrix.distro }}.${{ matrix.version }}.arm64
path: ./bin/BeamMP-Launcher.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-Launcher-tests

43
.github/workflows/windows.yml vendored Normal file
View File

@ -0,0 +1,43 @@
name: Windows
on: [push]
env:
VCPKG_DEFAULT_TRIPLET: x64-windows-static
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
CMAKE_BUILD_TYPE: "Release"
jobs:
windows-build:
runs-on: windows-latest
steps:
- 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 || '');
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
runVcpkgInstall: true
- name: Create Build Environment
shell: bash
run: ./scripts/windows/1-configure.sh
- name: Build Launcher
shell: bash
run: bash ./scripts/windows/2-build.sh
- name: Archive launcher artifact
uses: actions/upload-artifact@v2
with:
name: BeamMP-Launcher-windows
path: ./bin/Release/BeamMP-Launcher.exe

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -ex
apt-get update -y
apt-get install -y curl zip unzip tar cmake make git g++ ninja-build

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -ex
git config --global --add safe.directory $(pwd)
git config --global --add safe.directory $(pwd)/vcpkg
git config --global --add safe.directory $(pwd)/deps/commandline

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -ex
./vcpkg/bootstrap-vcpkg.sh
cmake . -B bin $1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-O3 -g -Wl,-z,norelro -Wl,--hash-style=gnu -Wl,--build-id=none -Wl,-z,noseparate-code -ffunction-sections -fdata-sections -Wl,--gc-sections" -DBeamMP-Launcher_ENABLE_LTO=ON

View File

@ -0,0 +1,5 @@
#!/bin/bash
set -ex
cmake --build bin --parallel -t BeamMP-Launcher-tests

10
scripts/debian-11/3-build.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
set -ex
cmake --build bin --parallel -t BeamMP-Launcher
objcopy --only-keep-debug bin/BeamMP-Launcher bin/BeamMP-Launcher.debug
objcopy --add-gnu-debuglink bin/BeamMP-Launcher bin/BeamMP-Launcher.debug
strip -s bin/BeamMP-Launcher

View File

@ -0,0 +1,8 @@
#!/bin/bash
set -ex
apt-get update -y
apt-get install -y curl

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -ex
apt-get update -y
apt-get install -y curl zip unzip tar cmake make git g++ ninja-build

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -ex
git config --global --add safe.directory $(pwd)
git config --global --add safe.directory $(pwd)/vcpkg
git config --global --add safe.directory $(pwd)/deps/commandline

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -ex
./vcpkg/bootstrap-vcpkg.sh
cmake . -B bin $1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-O3 -g -Wl,-z,norelro -Wl,--hash-style=gnu -Wl,--build-id=none -Wl,-z,noseparate-code -ffunction-sections -fdata-sections -Wl,--gc-sections" -DBeamMP-Launcher_ENABLE_LTO=ON

View File

@ -0,0 +1,5 @@
#!/bin/bash
set -ex
cmake --build bin --parallel -t BeamMP-Launcher-tests

10
scripts/debian-12/3-build.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
set -ex
cmake --build bin --parallel -t BeamMP-Launcher
objcopy --only-keep-debug bin/BeamMP-Launcher bin/BeamMP-Launcher.debug
objcopy --add-gnu-debuglink bin/BeamMP-Launcher bin/BeamMP-Launcher.debug
strip -s bin/BeamMP-Launcher

View File

@ -0,0 +1,8 @@
#!/bin/bash
set -ex
apt-get update -y
apt-get install -y curl

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -ex
apt-get update -y
apt-get install -y curl zip unzip tar cmake make git g++ ninja-build

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -ex
git config --global --add safe.directory $(pwd)
git config --global --add safe.directory $(pwd)/vcpkg
git config --global --add safe.directory $(pwd)/deps/commandline

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -ex
./vcpkg/bootstrap-vcpkg.sh
cmake . -B bin $1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-O3 -g -Wl,-z,norelro -Wl,--hash-style=gnu -Wl,--build-id=none -Wl,-z,noseparate-code -ffunction-sections -fdata-sections -Wl,--gc-sections" -DBeamMP-Launcher_ENABLE_LTO=ON

View File

@ -0,0 +1,5 @@
#!/bin/bash
set -ex
cmake --build bin --parallel -t BeamMP-Launcher-tests

10
scripts/ubuntu-20.04/3-build.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
set -ex
cmake --build bin --parallel -t BeamMP-Launcher
objcopy --only-keep-debug bin/BeamMP-Launcher bin/BeamMP-Launcher.debug
objcopy --add-gnu-debuglink bin/BeamMP-Launcher bin/BeamMP-Launcher.debug
strip -s bin/BeamMP-Launcher

View File

@ -0,0 +1,8 @@
#!/bin/bash
set -ex
apt-get update -y
apt-get install -y curl

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -ex
apt-get update -y
apt-get install -y curl zip unzip tar cmake make git g++ ninja-build

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -ex
git config --global --add safe.directory $(pwd)
git config --global --add safe.directory $(pwd)/vcpkg
git config --global --add safe.directory $(pwd)/deps/commandline

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -ex
./vcpkg/bootstrap-vcpkg.sh
cmake . -B bin $1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-O3 -g -Wl,-z,norelro -Wl,--hash-style=gnu -Wl,--build-id=none -Wl,-z,noseparate-code -ffunction-sections -fdata-sections -Wl,--gc-sections" -DBeamMP-Launcher_ENABLE_LTO=ON

View File

@ -0,0 +1,5 @@
#!/bin/bash
set -ex
cmake --build bin --parallel -t BeamMP-Launcher-tests

10
scripts/ubuntu-22.04/3-build.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
set -ex
cmake --build bin --parallel -t BeamMP-Launcher
objcopy --only-keep-debug bin/BeamMP-Launcher bin/BeamMP-Launcher.debug
objcopy --add-gnu-debuglink bin/BeamMP-Launcher bin/BeamMP-Launcher.debug
strip -s bin/BeamMP-Launcher

View File

@ -0,0 +1,8 @@
#!/bin/bash
set -ex
apt-get update -y
apt-get install -y curl

5
scripts/windows/1-configure.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
set -ex
cmake . -B bin $1 -DCMAKE_BUILD_TYPE=Release -DBeamMP-Launcher_ENABLE_LTO=ON -DVCPKG_TARGET_TRIPLET=x64-windows-static

View File

@ -0,0 +1,5 @@
#!/bin/bash
set -ex
cmake --build bin --parallel -t BeamMP-Launcher-tests

5
scripts/windows/2-build.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
set -ex
cmake --build bin --parallel -t BeamMP-Launcher --config Release