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_ARCHITECURE="x86_64;arm64" -B build . cmake --build build cmake --install build 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