From 13741280711f8c533fb7fd61eaea1fba6227700e Mon Sep 17 00:00:00 2001 From: t1amak Date: Thu, 19 Mar 2026 00:00:43 +0100 Subject: [PATCH] Expand Gitea CI matrix for cross-build targets --- .gitea/workflows/build.yml | 76 +++++++++++++++++++++++++++++++------- 1 file changed, 63 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 46bc8de..708e211 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -11,9 +11,53 @@ on: - "**/README.md" jobs: - linux-x86_64: - name: Linux x86_64 + build-cross: + name: ${{ matrix.toolchain.name }} runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + toolchain: + - name: RISCV 64bit + host: riscv64-linux-gnu + packages: python3 gperf g++-riscv64-linux-gnu + package_artifact: false + - name: ARM v7 + host: arm-linux-gnueabihf + packages: python3 gperf g++-arm-linux-gnueabihf + package_artifact: false + - name: ARM v8 + host: aarch64-linux-gnu + packages: python3 gperf g++-aarch64-linux-gnu + package_artifact: true + - name: i686 Win + host: i686-w64-mingw32 + packages: python3 g++-mingw-w64-i686 + package_artifact: false + - name: i686 Linux + host: i686-pc-linux-gnu + packages: gperf cmake g++-multilib python3-zmq + package_artifact: false + - name: Win64 + host: x86_64-w64-mingw32 + packages: cmake python3 g++-mingw-w64-x86-64 + package_artifact: true + - name: x86_64 Linux + host: x86_64-linux-gnu + packages: gperf cmake python3-zmq libdbus-1-dev libharfbuzz-dev + package_artifact: true + - name: Cross-Mac x86_64 + host: x86_64-apple-darwin + packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools-git + package_artifact: true + - name: Cross-Mac aarch64 + host: aarch64-apple-darwin + packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools-git + package_artifact: true + - name: x86_64 Freebsd + host: x86_64-unknown-freebsd + packages: clang-8 gperf cmake python3-zmq libdbus-1-dev libharfbuzz-dev + package_artifact: false steps: - name: Checkout @@ -30,34 +74,40 @@ jobs: autotools-dev \ build-essential \ ca-certificates \ + ccache \ cmake \ curl \ git \ - gperf \ - libdbus-1-dev \ - libharfbuzz-dev \ libssl-dev \ libtool \ pkg-config \ - python3-zmq \ - zip + zip \ + ${{ matrix.toolchain.packages }} + + - name: Prepare MinGW alternatives + if: ${{ matrix.toolchain.host == 'x86_64-w64-mingw32' || matrix.toolchain.host == 'i686-w64-mingw32' }} + run: | + sudo update-alternatives --set ${{ matrix.toolchain.host }}-g++ "$(which ${{ matrix.toolchain.host }}-g++-posix)" + sudo update-alternatives --set ${{ matrix.toolchain.host }}-gcc "$(which ${{ matrix.toolchain.host }}-gcc-posix)" - name: Build run: | - make depends target=x86_64-linux-gnu -j"$(nproc)" + make depends target=${{ matrix.toolchain.host }} -j"$(nproc)" - name: Package release archive + if: ${{ matrix.toolchain.package_artifact }} run: | REF_NAME="${GITHUB_REF_NAME:-$(git rev-parse --short=9 HEAD)}" - ARCHIVE="/tmp/peya-${REF_NAME}-linux-x86_64.zip" + ARCHIVE="/tmp/peya-${REF_NAME}-${{ matrix.toolchain.host }}.zip" - cd build/x86_64-linux-gnu/release/bin - zip -ur "${ARCHIVE}" peyad peya-wallet-cli peya-wallet-rpc peya-gen-multisig + cd "build/${{ matrix.toolchain.host }}/release/bin" + zip -ur "${ARCHIVE}" peyad* peya-wallet-cli* peya-wallet-rpc* peya-gen-multisig* ls -lh "${ARCHIVE}" - name: Upload build artifact + if: ${{ matrix.toolchain.package_artifact }} uses: https://github.com/actions/upload-artifact@v4 with: - name: peya-linux-x86_64 - path: /tmp/peya-*-linux-x86_64.zip + name: peya-${{ matrix.toolchain.host }} + path: /tmp/peya-*-${{ matrix.toolchain.host }}.zip if-no-files-found: error