Update .gitea/workflows/build.yaml
Some checks failed
Build Wownero LWS (Split Jobs) / macos (arm64, macos-arm64, aarch64-apple-darwin11) (push) Failing after 1m57s
Build Wownero LWS (Split Jobs) / macos (x86_64, macos-x64, x86_64-apple-darwin11) (push) Failing after 1m6s
Build Wownero LWS (Split Jobs) / linux-native (push) Failing after 4m25s
Build Wownero LWS (Split Jobs) / linux-cross (aarch64, aarch64-linux-gnu) (push) Failing after 2m51s
Build Wownero LWS (Split Jobs) / linux-cross (riscv64, riscv64-linux-gnu) (push) Failing after 2m34s
Build Wownero LWS (Split Jobs) / windows (push) Failing after 2m44s

This commit is contained in:
2026-01-24 16:41:34 -05:00
parent 4ec4d0b994
commit 341a979904

View File

@@ -1,4 +1,4 @@
name: Build Wownero LWS (Static / Boost 1.90)
name: Build Wownero LWS (Split Jobs)
on:
push:
branches: [ master, main ]
@@ -11,7 +11,7 @@ env:
jobs:
# ==================================================================
# JOB 1: LINUX NATIVE (x86_64) - STRICT STATIC
# JOB 1: LINUX NATIVE (x86_64)
# ==================================================================
linux-native:
runs-on: ubuntu-latest
@@ -33,8 +33,9 @@ jobs:
- name: Patch Source
run: |
perl -pi -e 's/struct\s+rest_server::handler_loop\s+final/struct rest_server::handler_loop/g' src/rest_server.cpp
perl -pi -e 's/find_library\(ICU/# find_library(ICU/g' external/monero/CMakeLists.txt
# Broad regex to catch 'final' regardless of namespace qualification
perl -pi -e 's/handler_loop\s+final/handler_loop/g' src/rest_server.cpp
# Nuke Werror
perl -pi -e 's/-Werror//g' CMakeLists.txt
perl -pi -e 's/-Werror//g' external/monero/CMakeLists.txt
@@ -44,26 +45,36 @@ jobs:
mkdir -p /opt/wownero-sdk
tar -xf sdk.tar.gz -C /opt/wownero-sdk
- name: Normalize SDK (The "Find It" Fix)
- name: Normalize SDK (Crucial Step)
run: |
# 1. List files for debugging (so you can yell at me with proof if I fail)
echo "=== SDK CONTENT START ==="
find /opt/wownero-sdk -name "*.a"
echo "=== SDK CONTENT END ==="
# 2. Find and Alias libraries
# This handles 'libzstd_pic.a' -> 'libzstd.a' mapping automatically
cd /opt/wownero-sdk/lib
# Find zstd (handle _pic variant)
if [ ! -f libzstd.a ]; then
FOUND=$(find . -name "libzstd*.a" | head -n 1)
if [ ! -z "$FOUND" ]; then cp "$FOUND" libzstd.a; fi
fi
# Find zlib
if [ ! -f libz.a ]; then
FOUND=$(find . -name "libz*.a" | head -n 1)
if [ ! -z "$FOUND" ]; then cp "$FOUND" libz.a; fi
fi
# Find hidapi
if [ ! -f libhidapi.a ]; then
FOUND=$(find . -name "libhidapi*.a" | head -n 1)
if [ ! -z "$FOUND" ]; then cp "$FOUND" libhidapi.a; fi
fi
echo "SDK Library contents:"
ls -lh *.a
find_and_copy() {
pattern=$1
target=$2
# Find the file, prefer exact match, then pattern
file=$(find . -name "$target" | head -n 1)
if [ -z "$file" ]; then
file=$(find . -name "$pattern" | head -n 1)
fi
if [ ! -z "$file" ] && [ "$file" != "./$target" ]; then
echo "Aliasing $file to $target"
cp "$file" "$target"
fi
}
find_and_copy "libzstd*.a" "libzstd.a"
find_and_copy "libz*.a" "libz.a"
find_and_copy "libhidapi*.a" "libhidapi.a"
find_and_copy "libusb*.a" "libusb-1.0.a"
- name: Install Modern CMake
run: |
@@ -76,8 +87,7 @@ jobs:
mkdir build && cd build
SDK_DIR="/opt/wownero-sdk"
# Force finding libs in SDK.
# -static flag in linker forces purely static binary.
# Force Absolute Paths to the Normalized Libs
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DBUILD_STATIC=ON \
-DCMAKE_PREFIX_PATH="$SDK_DIR" \
@@ -98,12 +108,9 @@ jobs:
-DHIDAPI_LIBRARY="$SDK_DIR/lib/libhidapi.a" \
-DZSTD_LIBRARY="$SDK_DIR/lib/libzstd.a" \
-DZSTD_INCLUDE_DIR="$SDK_DIR/include" \
-DZLIB_LIBRARY="$SDK_DIR/lib/libz.a" \
-DZLIB_INCLUDE_DIR="$SDK_DIR/include" \
-DLIBEVENT_LIBRARY="$SDK_DIR/lib/libevent.a" \
-DLIBEVENT_INCLUDE_DIR="$SDK_DIR/include" \
-DUSE_READLINE=OFF \
-DCMAKE_EXE_LINKER_FLAGS="-static -L$SDK_DIR/lib"
-DLIBEVENT_LIBRARY=$SDK_DIR/lib/libevent.a \
-DLIBEVENT_INCLUDE_DIR=$SDK_DIR/include \
-DUSE_READLINE=OFF
make -j$(nproc)
@@ -119,7 +126,7 @@ jobs:
path: release/*.tar.gz
# ==================================================================
# JOB 2: LINUX CROSS (ARM64 / RISCV64) - STRICT STATIC
# JOB 2: LINUX CROSS (ARM64 / RISCV64)
# ==================================================================
linux-cross:
runs-on: ubuntu-latest
@@ -149,7 +156,7 @@ jobs:
- name: Patch Source
run: |
perl -pi -e 's/struct\s+rest_server::handler_loop\s+final/struct rest_server::handler_loop/g' src/rest_server.cpp
perl -pi -e 's/handler_loop\s+final/handler_loop/g' src/rest_server.cpp
perl -pi -e 's/find_library\(ICU/# find_library(ICU/g' external/monero/CMakeLists.txt
perl -pi -e 's/-Werror//g' CMakeLists.txt
perl -pi -e 's/-Werror//g' external/monero/CMakeLists.txt
@@ -160,12 +167,19 @@ jobs:
mkdir -p /opt/wownero-sdk
tar -xf sdk.tar.gz -C /opt/wownero-sdk
- name: Normalize SDK
- name: Normalize SDK (Crucial Step)
run: |
cd /opt/wownero-sdk/lib
if [ ! -f libzstd.a ]; then FOUND=$(find . -name "libzstd*.a" | head -n 1); if [ ! -z "$FOUND" ]; then cp "$FOUND" libzstd.a; fi; fi
if [ ! -f libz.a ]; then FOUND=$(find . -name "libz*.a" | head -n 1); if [ ! -z "$FOUND" ]; then cp "$FOUND" libz.a; fi; fi
if [ ! -f libhidapi.a ]; then FOUND=$(find . -name "libhidapi*.a" | head -n 1); if [ ! -z "$FOUND" ]; then cp "$FOUND" libhidapi.a; fi; fi
find_and_copy() {
pattern=$1; target=$2
file=$(find . -name "$target" | head -n 1)
if [ -z "$file" ]; then file=$(find . -name "$pattern" | head -n 1); fi
if [ ! -z "$file" ] && [ "$file" != "./$target" ]; then cp "$file" "$target"; fi
}
find_and_copy "libzstd*.a" "libzstd.a"
find_and_copy "libz*.a" "libz.a"
find_and_copy "libhidapi*.a" "libhidapi.a"
ls -lh *.a
- name: Install Modern CMake
run: |
@@ -175,19 +189,17 @@ jobs:
- name: Generate Toolchain
run: |
# NO SYSROOT set here to avoid the "compiler broken" error.
# We rely on the compiler wrapper to know where standard libs are.
cat <<EOF > cross.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR ${{ matrix.proc }})
set(CMAKE_C_COMPILER ${{ matrix.target }}-gcc)
set(CMAKE_CXX_COMPILER ${{ matrix.target }}-g++)
# Only look in SDK.
# Relaxed search mode to find RT/Pthread
set(CMAKE_FIND_ROOT_PATH /opt/wownero-sdk)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
EOF
@@ -196,8 +208,7 @@ jobs:
mkdir build && cd build
SDK_DIR="/opt/wownero-sdk"
# -static : Force fully static binary
# -lrt : Explicitly link librt (needed for Boost on Linux)
# Explicitly set RT library variable to 'rt' so CMake finds it in system
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cross.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_STATIC=ON \
@@ -219,12 +230,12 @@ jobs:
-DHIDAPI_LIBRARY="$SDK_DIR/lib/libhidapi.a" \
-DZSTD_LIBRARY="$SDK_DIR/lib/libzstd.a" \
-DZSTD_INCLUDE_DIR="$SDK_DIR/include" \
-DZLIB_LIBRARY="$SDK_DIR/lib/libz.a" \
-DZLIB_INCLUDE_DIR="$SDK_DIR/include" \
-DLIBEVENT_LIBRARY=$SDK_DIR/lib/libevent.a \
-DLIBEVENT_INCLUDE_DIR=$SDK_DIR/include \
-DUSE_READLINE=OFF \
-DCMAKE_EXE_LINKER_FLAGS="-static -L$SDK_DIR/lib -lrt"
-DZLIB_LIBRARY="$SDK_DIR/lib/libz.a" \
-DZLIB_INCLUDE_DIR=$SDK_DIR/include \
-DRT_LIBRARY=rt \
-DUSE_READLINE=OFF
make -j$(nproc)
@@ -240,7 +251,7 @@ jobs:
path: release/*.tar.gz
# ==================================================================
# JOB 3: WINDOWS (x86_64) - STRICT STATIC
# JOB 3: WINDOWS (x86_64)
# ==================================================================
windows:
runs-on: ubuntu-latest
@@ -262,9 +273,10 @@ jobs:
- name: Patch Source
run: |
perl -pi -e 's/struct\s+rest_server::handler_loop\s+final/struct rest_server::handler_loop/g' src/rest_server.cpp
# Nuke all ICU checks (icuio, icuin, icuuc)
perl -pi -e 's/handler_loop\s+final/handler_loop/g' src/rest_server.cpp
# Nuke ICU checks completely
perl -pi -e 's/find_library\(ICU/# find_library(ICU/g' external/monero/CMakeLists.txt
# Nuke ICONV check completely (Windows)
perl -pi -e 's/find_library\(ICONV/# find_library(ICONV/g' external/monero/CMakeLists.txt
perl -pi -e 's/-Werror//g' CMakeLists.txt
perl -pi -e 's/-Werror//g' external/monero/CMakeLists.txt
@@ -278,10 +290,16 @@ jobs:
- name: Normalize SDK & Dummy RT
run: |
cd /opt/wownero-sdk/lib
if [ ! -f libzstd.a ]; then FOUND=$(find . -name "libzstd*.a" | head -n 1); if [ ! -z "$FOUND" ]; then cp "$FOUND" libzstd.a; fi; fi
if [ ! -f libz.a ]; then FOUND=$(find . -name "libz*.a" | head -n 1); if [ ! -z "$FOUND" ]; then cp "$FOUND" libz.a; fi; fi
if [ ! -f libhidapi.a ]; then FOUND=$(find . -name "libhidapi*.a" | head -n 1); if [ ! -z "$FOUND" ]; then cp "$FOUND" libhidapi.a; fi; fi
if [ ! -f libiconv.a ]; then FOUND=$(find . -name "libiconv*.a" | head -n 1); if [ ! -z "$FOUND" ]; then cp "$FOUND" libiconv.a; fi; fi
find_and_copy() {
pattern=$1; target=$2
file=$(find . -name "$target" | head -n 1)
if [ -z "$file" ]; then file=$(find . -name "$pattern" | head -n 1); fi
if [ ! -z "$file" ] && [ "$file" != "./$target" ]; then cp "$file" "$target"; fi
}
find_and_copy "libzstd*.a" "libzstd.a"
find_and_copy "libz*.a" "libz.a"
find_and_copy "libhidapi*.a" "libhidapi.a"
find_and_copy "libiconv*.a" "libiconv.a"
# DUMMY RT FOR WINDOWS
echo "" > dummy.c
@@ -390,10 +408,8 @@ jobs:
- name: Patch Source
run: |
perl -pi -e 's/struct\s+rest_server::handler_loop\s+final/struct rest_server::handler_loop/g' src/rest_server.cpp
perl -pi -e 's/handler_loop\s+final/handler_loop/g' src/rest_server.cpp
perl -pi -e 's/find_library\(ICU/# find_library(ICU/g' external/monero/CMakeLists.txt
perl -pi -e 's/-Werror//g' CMakeLists.txt
perl -pi -e 's/-Werror//g' external/monero/CMakeLists.txt
- name: Install CMake
run: brew install cmake