Update CmakeScript and CI
Some checks failed
Build bannertool / build-macos (push) Successful in 5s
Build bannertool / build-linux (push) Successful in 1m8s
Build bannertool / release (push) Failing after 4s

This commit is contained in:
2025-10-31 21:29:55 +01:00
parent 7d7d8b6291
commit 216b36525b
3 changed files with 105 additions and 14 deletions

View File

@@ -0,0 +1,83 @@
name: Build bannertool
on:
push:
branches:
- '*'
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Tools
run: |
sudo apt update
sudo apt install -y build-essential make cmake zip \
gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf \
gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \
gcc-x86-64-linux-gnu g++-x86-64-linux-gnu \
gcc-i686-linux-gnu g++-i686-linux-gnu \
gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64
- name: Download Cross-Build
run: git clone https://dev.npid7.de/tobid7/cross-build
- name: Build Targets
run: |
declare -A TARGETS=(
["linux-i386"]="-DCMAKE_TOOLCHAIN_FILE=cross-build/cmake/linux-i386.cmake"
["linux-x86_64"]="-DCMAKE_TOOLCHAIN_FILE=cross-build/cmake/linux-x86_64.cmake"
["linux-armhf"]="-DCMAKE_TOOLCHAIN_FILE=cross-build/cmake/linux-armhf.cmake"
["linux-aarch64"]="-DCMAKE_TOOLCHAIN_FILE=cross-build/cmake/linux-aarch64.cmake"
["windows-x86_64"]="-DCMAKE_TOOLCHAIN_FILE=cross-build/cmake/windows-mingw-x86_64.cmake"
)
for name in "${!TARGETS[@]}"; do
cmake ${TARGETS[$name]} -DCMAKE_INSTALL_PREFIX=bin-$name -B build-$name .
cmake --build build-$name --parallel
cmake --install build-$name
mkdir -p artifacts/$name
cp -r bin-$name/* artifacts/$name/
done
build-macos:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build
run: |
cmake -DCMAKE_INSTALL_PREFIX=bin-macos-universal -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -B build .
cmake --build build
cmake --install build
mkdir -p artifacts/macos-universal
cp -r bin-macos-universal/* artifacts/macos-universal/
release:
runs-on: ubuntu-latest
needs: [build-linux, build-macos]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare Files
run: |
mkdir -p release_files
for d in artifacts/*; do
name=$(basename "$d")
zip -r "release_files/$name.zip" "$d"
done
- name: Get Date
run: echo "TAG_NAME=v$(date -u +'%Y%m%d-%H%M%S')" >> $GITHUB_ENV
- name: Upload to Gitea
uses: akkuman/gitea-release-action@v1
with:
token: ${{ secrets.TOKEN }}
prerelease: true
name: "Dev build ${{ env.TAG_NAME }}"
tag_name: ${{ env.TAG_NAME }}
body: |
**Automated build**
Commit: ${{ github.sha }}
Triggered by: ${{ github.actor }}
files: release_files/*.zip