on: push: tags: - 'v*.*.*' 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 \ gcc-mingw-w64-i686 g++-mingw-w64-i686 - name: Download Cross-Build run: git clone https://dev.npid7.de/tobid7/cross-build - name: Build Targets run: | mkdir -p build_artifacts 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" ["windows-x86"]="-DCMAKE_TOOLCHAIN_FILE=cross-build/cmake/windows-mingw-i386.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 zip -r build_artifacts/${name}.zip bin-$name done - name: Upload Artifacts uses: actions/upload-artifact@v3 with: name: linux-builds path: build_artifacts/*.zip build-macos: runs-on: macos-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Build run: | mkdir -p build_artifacts 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/ zip -r build_artifacts/macos-universal.zip bin-macos-universal - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: macos-build path: build_artifacts/*.zip release: runs-on: ubuntu-latest needs: [build-linux, build-macos] steps: - name: Checkout uses: actions/checkout@v4 - name: Download Artifacts uses: actions/download-artifact@v3 with: path: release_files - name: Upload to Gitea uses: akkuman/gitea-release-action@v1 with: token: ${{ secrets.TOKEN }} prerelease: false name: "Release ${{ github.ref_name }}" tag_name: ${{ github.ref_name }} body: | **Bannertool Release ${{ github.ref_name }}** Commit: ${{ github.sha }} Triggered by: ${{ github.actor }} Supported Systems: - Windows x64 - Windows x86 (32 Bit) - Linux x86_64 - Linux x86 (32 Bit) - Linux armhf (32 Bit) - Linux aarch64 (arm64) files: release_files/**/*.zip