fix workflow to fetch libsecp256k1.so
Some checks failed
Go / build-and-release (push) Has been cancelled

This commit is contained in:
2025-11-25 06:03:22 +00:00
parent 7fe1154391
commit 2e865c9616
12 changed files with 109 additions and 52 deletions

View File

@@ -33,10 +33,11 @@ if [[ ! -x "$BENCHMARK_BIN" ]]; then
echo "Building benchmark binary (pure Go + purego)..."
cd "$REPO_ROOT/cmd/benchmark"
CGO_ENABLED=0 go build -o "$BENCHMARK_BIN" .
# Copy libsecp256k1.so if available (runtime optional)
if [[ -f "$REPO_ROOT/pkg/crypto/p8k/libsecp256k1.so" ]]; then
cp "$REPO_ROOT/pkg/crypto/p8k/libsecp256k1.so" "$(dirname "$BENCHMARK_BIN")/"
fi
# Download libsecp256k1.so from nostr repository (runtime optional)
wget -q https://git.mleku.dev/mleku/nostr/raw/branch/main/crypto/p8k/libsecp256k1.so \
-O "$(dirname "$BENCHMARK_BIN")/libsecp256k1.so" 2>/dev/null || \
echo "Warning: Failed to download libsecp256k1.so (optional for performance)"
chmod +x "$(dirname "$BENCHMARK_BIN")/libsecp256k1.so" 2>/dev/null || true
cd "$REPO_ROOT"
fi

View File

@@ -21,7 +21,7 @@ NC='\033[0m' # No Color
# Configuration
VERSION=$(cat pkg/version/version)
OUTPUT_DIR="$REPO_ROOT/build"
LIB_SOURCE="$REPO_ROOT/pkg/crypto/p8k"
NOSTR_REPO_BASE_URL="https://git.mleku.dev/mleku/nostr/raw/branch/main/crypto/p8k"
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE}ORLY Multi-Platform Build Script${NC}"
@@ -53,30 +53,38 @@ build_platform() {
echo -e "${GREEN}✓ Built: ${output_name}${NC}"
# Copy appropriate runtime library
# Download appropriate runtime library from nostr repository
case "$goos" in
linux)
if [ -f "${LIB_SOURCE}/libsecp256k1.so" ]; then
cp "${LIB_SOURCE}/libsecp256k1.so" "${OUTPUT_DIR}/libsecp256k1-${platform_name}.so"
echo -e "${GREEN}Copied libsecp256k1.so (runtime optional)${NC}"
if wget -q "${NOSTR_REPO_BASE_URL}/libsecp256k1.so" -O "${OUTPUT_DIR}/libsecp256k1-${platform_name}.so"; then
chmod +x "${OUTPUT_DIR}/libsecp256k1-${platform_name}.so"
echo -e "${GREEN}Downloaded libsecp256k1.so (runtime optional)${NC}"
else
echo -e "${YELLOW} ⚠ Failed to download libsecp256k1.so (runtime optional)${NC}"
fi
;;
darwin)
if [ -f "${LIB_SOURCE}/libsecp256k1.dylib" ]; then
cp "${LIB_SOURCE}/libsecp256k1.dylib" "${OUTPUT_DIR}/libsecp256k1-${platform_name}.dylib"
echo -e "${GREEN}Copied libsecp256k1.dylib (runtime optional)${NC}"
if wget -q "${NOSTR_REPO_BASE_URL}/libsecp256k1.dylib" -O "${OUTPUT_DIR}/libsecp256k1-${platform_name}.dylib"; then
chmod +x "${OUTPUT_DIR}/libsecp256k1-${platform_name}.dylib"
echo -e "${GREEN}Downloaded libsecp256k1.dylib (runtime optional)${NC}"
else
echo -e "${YELLOW} ⚠ Failed to download libsecp256k1.dylib (runtime optional)${NC}"
fi
;;
windows)
if [ -f "${LIB_SOURCE}/libsecp256k1.dll" ]; then
cp "${LIB_SOURCE}/libsecp256k1.dll" "${OUTPUT_DIR}/libsecp256k1-${platform_name}.dll"
echo -e "${GREEN}Copied libsecp256k1.dll (runtime optional)${NC}"
if wget -q "${NOSTR_REPO_BASE_URL}/libsecp256k1.dll" -O "${OUTPUT_DIR}/libsecp256k1-${platform_name}.dll"; then
chmod +x "${OUTPUT_DIR}/libsecp256k1-${platform_name}.dll"
echo -e "${GREEN}Downloaded libsecp256k1.dll (runtime optional)${NC}"
else
echo -e "${YELLOW} ⚠ Failed to download libsecp256k1.dll (runtime optional)${NC}"
fi
;;
android)
if [ -f "${LIB_SOURCE}/libsecp256k1.so" ]; then
cp "${LIB_SOURCE}/libsecp256k1.so" "${OUTPUT_DIR}/libsecp256k1-${platform_name}.so"
echo -e "${GREEN}Copied libsecp256k1.so (runtime optional)${NC}"
if wget -q "${NOSTR_REPO_BASE_URL}/libsecp256k1.so" -O "${OUTPUT_DIR}/libsecp256k1-${platform_name}.so"; then
chmod +x "${OUTPUT_DIR}/libsecp256k1-${platform_name}.so"
echo -e "${GREEN}Downloaded libsecp256k1.so (runtime optional)${NC}"
else
echo -e "${YELLOW} ⚠ Failed to download libsecp256k1.so (runtime optional)${NC}"
fi
;;
esac

View File

@@ -197,10 +197,13 @@ build_application() {
log_info "Building binary in current directory (pure Go + purego)..."
CGO_ENABLED=0 go build -o "$BINARY_NAME"
# Copy libsecp256k1.so next to the binary (optional, for runtime performance)
if [[ -f "pkg/crypto/p8k/libsecp256k1.so" ]]; then
cp pkg/crypto/p8k/libsecp256k1.so .
log_info "Copied libsecp256k1.so next to binary (runtime optional)"
# Download libsecp256k1.so from nostr repository (optional, for runtime performance)
log_info "Downloading libsecp256k1.so from nostr repository..."
if wget -q https://git.mleku.dev/mleku/nostr/raw/branch/main/crypto/p8k/libsecp256k1.so -O libsecp256k1.so; then
chmod +x libsecp256k1.so
log_success "Downloaded libsecp256k1.so successfully (runtime optional)"
else
log_warning "Failed to download libsecp256k1.so - relay will still work but may have slower crypto"
fi
if [[ -f "./$BINARY_NAME" ]]; then

View File

@@ -2,7 +2,16 @@
# Pure Go build with purego - no CGO needed
# libsecp256k1 is loaded dynamically at runtime if available
export CGO_ENABLED=0
if [ -f "pkg/crypto/p8k/libsecp256k1.so" ]; then
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(pwd)/pkg/crypto/p8k"
# Download libsecp256k1.so from nostr repository if not present
if [ ! -f "libsecp256k1.so" ]; then
wget -q https://git.mleku.dev/mleku/nostr/raw/branch/main/crypto/p8k/libsecp256k1.so -O libsecp256k1.so 2>/dev/null || true
chmod +x libsecp256k1.so 2>/dev/null || true
fi
# Set LD_LIBRARY_PATH if library is available
if [ -f "libsecp256k1.so" ]; then
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(pwd)"
fi
go test -v ./... -bench=. -run=xxx -benchmem

View File

@@ -2,8 +2,19 @@
# Pure Go build with purego - no CGO needed
# libsecp256k1 is loaded dynamically at runtime if available
export CGO_ENABLED=0
if [ -f "pkg/crypto/p8k/libsecp256k1.so" ]; then
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(pwd)/pkg/crypto/p8k"
# Download libsecp256k1.so from nostr repository if not present
if [ ! -f "libsecp256k1.so" ]; then
echo "Downloading libsecp256k1.so from nostr repository..."
wget -q https://git.mleku.dev/mleku/nostr/raw/branch/main/crypto/p8k/libsecp256k1.so -O libsecp256k1.so || {
echo "Warning: Failed to download libsecp256k1.so - tests may fail"
}
chmod +x libsecp256k1.so 2>/dev/null || true
fi
# Set LD_LIBRARY_PATH to include current directory
if [ -f "libsecp256k1.so" ]; then
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(pwd)"
fi
go mod tidy