From b337dfe3bc98738b30a2ef03af5f178b5a8a0587 Mon Sep 17 00:00:00 2001 From: tobid7 Date: Sun, 2 Nov 2025 18:03:21 +0100 Subject: [PATCH] Add Automated release action --- .gitea/workflows/release.yml | 98 ++++++++++++++++++++++++++++++++++++ README.md | 4 +- 2 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 .gitea/workflows/release.yml diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..b99409e --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,98 @@ +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 \ No newline at end of file diff --git a/README.md b/README.md index 1aec2c6..cc7920a 100644 --- a/README.md +++ b/README.md @@ -11,5 +11,5 @@ cmake --build build ## Credits -Stevice10: Creating bannertool -tobid7: Providing binaries for more systems +- Stevice10: Creating bannertool +- tobid7: Providing binaries for more systems