Update .gitea/workflows/build.yaml

This commit is contained in:
2026-02-10 12:10:28 -05:00
parent 929f99d64a
commit 39dac5b28a

View File

@@ -1,4 +1,4 @@
name: Build Wownero Core (Libevent Fix)
name: Build Wownero Core (Libevent FailSafe)
on:
push:
branches: [ master, main ]
@@ -63,10 +63,10 @@ jobs:
curl -L -o contrib/depends/funcs.mk https://codeberg.org/wownero/wownero/raw/branch/master/contrib/depends/funcs.mk
curl -L -o contrib/depends/packages/packages.mk https://codeberg.org/wownero/wownero/raw/branch/master/contrib/depends/packages/packages.mk
# FIX: Inject libevent into the build list (must be before unbound)
# Inject packages: libevent added before unbound
sed -i 's/^packages :=.*/packages := boost openssl expat libusb hidapi protobuf libiconv sodium zeromq libevent unbound zlib zstd/' contrib/depends/packages/packages.mk
# GENERATE LIBEVENT.MK (Corrected to match zlib pattern)
# GENERATE LIBEVENT.MK (Attempt 1: Makefiles)
cat <<'EOF' > contrib/depends/packages/libevent.mk
package=libevent
$(package)_version=2.1.12-stable
@@ -203,20 +203,18 @@ jobs:
make -j$(nproc)
# -----------------------------------------------------------------------
# 2. FAIL-SAFE (Mkdir Fixed + Windows Name Fix)
# 2. FAIL-SAFE (Now includes Libevent)
# -----------------------------------------------------------------------
- name: Ensure Static Libs Exist
run: |
# ABSOLUTE PATHS to prevent cp errors
LIB_DIR="$(pwd)/contrib/depends/${{ matrix.target }}/lib"
INC_DIR="$(pwd)/contrib/depends/${{ matrix.target }}/include"
TOOLCHAIN="$(pwd)/contrib/depends/${{ matrix.target }}/share/toolchain.cmake"
# Create dirs
mkdir -p "$LIB_DIR"
mkdir -p "$INC_DIR"
# 1. CHECK ZSTD
# --- FAIL-SAFE 1: ZSTD ---
if [ ! -f "$LIB_DIR/libzstd.a" ]; then
echo "Zstd missing! Activating Fail-Safe Build..."
mkdir -p temp_zstd && cd temp_zstd
@@ -230,18 +228,13 @@ jobs:
-DZSTD_BUILD_PROGRAMS=OFF -DZSTD_BUILD_TESTS=OFF
make -j$(nproc)
# Zstd naming is usually consistent, but let's be safe
if [ -f lib/libzstd.a ]; then
cp lib/libzstd.a "$LIB_DIR/"
elif [ -f lib/libzstdstatic.a ]; then
cp lib/libzstdstatic.a "$LIB_DIR/libzstd.a"
fi
if [ -f lib/libzstd.a ]; then cp lib/libzstd.a "$LIB_DIR/"; fi
if [ -f lib/libzstdstatic.a ]; then cp lib/libzstdstatic.a "$LIB_DIR/libzstd.a"; fi
cp ../../lib/zstd.h "$INC_DIR/"
cd ../../..
fi
# 2. CHECK ZLIB
# --- FAIL-SAFE 2: ZLIB ---
if [ ! -f "$LIB_DIR/libz.a" ]; then
echo "Zlib missing! Activating Fail-Safe Build..."
mkdir -p temp_zlib && cd temp_zlib
@@ -254,19 +247,41 @@ jobs:
-DBUILD_SHARED_LIBS=OFF
make -j$(nproc)
# WINDOWS FIX: Check for libzlibstatic.a
if [ -f libz.a ]; then
cp libz.a "$LIB_DIR/"
elif [ -f libzlibstatic.a ]; then
echo "Detected Windows naming (libzlibstatic.a). Renaming to libz.a..."
cp libzlibstatic.a "$LIB_DIR/libz.a"
fi
if [ -f libz.a ]; then cp libz.a "$LIB_DIR/"; fi
if [ -f libzlibstatic.a ]; then cp libzlibstatic.a "$LIB_DIR/libz.a"; fi
cp zlib.h "$INC_DIR/"
cp zconf.h "$INC_DIR/"
cd ../..
fi
# --- FAIL-SAFE 3: LIBEVENT (The Fix) ---
if [ ! -f "$LIB_DIR/libevent.a" ]; then
echo "Libevent missing! Activating Fail-Safe Build..."
mkdir -p temp_event && cd temp_event
curl -L -o libevent.tar.gz https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
tar -xf libevent.tar.gz && cd libevent-2.1.12-stable
cmake . -DCMAKE_TOOLCHAIN_FILE="$TOOLCHAIN" \
-DCMAKE_INSTALL_PREFIX="$(pwd)/inst" \
-DCMAKE_BUILD_TYPE=Release \
-DEVENT__DISABLE_OPENSSL=ON \
-DEVENT__DISABLE_MBEDTLS=ON \
-DEVENT__DISABLE_TESTS=ON \
-DEVENT__DISABLE_SAMPLES=ON \
-DEVENT__LIBRARY_TYPE=STATIC
make -j$(nproc)
# Locate and copy the static lib (name might vary, grab any .a)
find . -name "libevent.a" -exec cp {} "$LIB_DIR/" \;
find . -name "libevent_core.a" -exec cp {} "$LIB_DIR/" \;
find . -name "libevent_extra.a" -exec cp {} "$LIB_DIR/" \;
# Also copy headers
mkdir -p "$INC_DIR/event2"
cp -r include/event2/* "$INC_DIR/event2/"
cd ../..
fi
- name: Package Artifacts
run: |
LIB_DIR="contrib/depends/${{ matrix.target }}/lib"
@@ -276,11 +291,16 @@ jobs:
find build/bin -type f -exec cp -v {} output/bin/ \;
cp -v $LIB_DIR/*.a output/lib/
# Final Verification
# Final Verification (The "Stop if Fucked" check)
ls -l output/lib/libz*.a
if [ ! -f output/lib/libzstd.a ]; then echo "FATAL: libzstd.a missing"; exit 1; fi
if [ ! -f output/lib/libz.a ]; then echo "FATAL: libz.a missing"; exit 1; fi
if [ ! -f output/lib/libevent.a ]; then echo "FATAL: libevent.a missing"; exit 1; fi
# Check for ANY libevent static lib (it might be libevent_core.a etc)
if [ -z "$(find output/lib -name 'libevent*.a')" ]; then
echo "FATAL: libevent.a missing (checked libevent*.a)"
exit 1
fi
cp -r src output/include/wownero-src
cp -r $INC_DIR/* output/include/