mirror of
				https://github.com/Xahau/xahaud.git
				synced 2025-11-03 18:25:49 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			110 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash -u
 | 
						|
# We use set -e and bash with -u to bail on first non zero exit code of any
 | 
						|
# processes launched or upon any unbound variable.
 | 
						|
# We use set -x to print commands before running them to help with
 | 
						|
# debugging.
 | 
						|
set -ex
 | 
						|
 | 
						|
echo "START INSIDE CONTAINER - CORE"
 | 
						|
 | 
						|
echo "-- BUILD CORES:       $3"
 | 
						|
echo "-- GITHUB_REPOSITORY: $1"
 | 
						|
echo "-- GITHUB_SHA:        $2"
 | 
						|
echo "-- GITHUB_RUN_NUMBER: $4"
 | 
						|
 | 
						|
# Use mounted filesystem for temp files to avoid container space limits
 | 
						|
export TMPDIR=/io/tmp
 | 
						|
export TEMP=/io/tmp
 | 
						|
export TMP=/io/tmp
 | 
						|
mkdir -p /io/tmp
 | 
						|
echo "=== Using temp directory: /io/tmp ==="
 | 
						|
 | 
						|
umask 0000;
 | 
						|
 | 
						|
cd /io/ &&
 | 
						|
echo "Importing env... Lines:" &&
 | 
						|
cat .env|wc -l &&
 | 
						|
source .env
 | 
						|
 | 
						|
echo $?
 | 
						|
if [[ "$?" -ne "0" ]]; then
 | 
						|
  echo "ERR no .env found/sourced"
 | 
						|
  exit 127
 | 
						|
fi
 | 
						|
 | 
						|
BUILD_TYPE=Release
 | 
						|
 | 
						|
mv Builds/CMake/deps/WasmEdge.cmake Builds/CMake/deps/WasmEdge.old &&
 | 
						|
echo "find_package(LLVM REQUIRED CONFIG)
 | 
						|
message(STATUS \"Found LLVM \${LLVM_PACKAGE_VERSION}\")
 | 
						|
message(STATUS \"Using LLVMConfig.cmake in: \${LLVM_DIR}\")
 | 
						|
add_library (wasmedge STATIC IMPORTED GLOBAL)
 | 
						|
set_target_properties(wasmedge PROPERTIES IMPORTED_LOCATION \${WasmEdge_LIB})
 | 
						|
target_link_libraries (ripple_libs INTERFACE wasmedge)
 | 
						|
add_library (wasmedge::wasmedge ALIAS wasmedge)
 | 
						|
message(\"WasmEdge DONE\")
 | 
						|
" > Builds/CMake/deps/WasmEdge.cmake &&
 | 
						|
 | 
						|
export LDFLAGS="-static-libstdc++"
 | 
						|
 | 
						|
git config --global --add safe.directory /io &&
 | 
						|
git checkout src/ripple/protocol/impl/BuildInfo.cpp &&
 | 
						|
sed -i s/\"0.0.0\"/\"$(date +%Y).$(date +%-m).$(date +%-d)-$(git rev-parse --abbrev-ref HEAD)$(if [ -n "$4" ]; then echo "+$4"; fi)\"/g src/ripple/protocol/impl/BuildInfo.cpp &&
 | 
						|
conan export external/snappy --version 1.1.10 --user xahaud --channel stable &&
 | 
						|
conan export external/soci --version 4.0.3 --user xahaud --channel stable &&
 | 
						|
conan export external/wasmedge --version 0.11.2 --user xahaud --channel stable &&
 | 
						|
cd release-build &&
 | 
						|
# Install dependencies - tool_requires in conanfile.py handles glibc 2.28 compatibility
 | 
						|
# for build tools (protoc, grpc plugins, b2) in HBB environment
 | 
						|
# The tool_requires('b2/5.3.2') in conanfile.py should force b2 to build from source
 | 
						|
# with the correct toolchain, avoiding the GLIBCXX_3.4.29 issue
 | 
						|
echo "=== Installing dependencies ===" &&
 | 
						|
conan install .. --output-folder . --build missing --settings build_type=$BUILD_TYPE \
 | 
						|
  -o with_wasmedge=False -o tool_requires_b2=True &&
 | 
						|
cmake .. -G Ninja \
 | 
						|
  -DCMAKE_BUILD_TYPE=$BUILD_TYPE \
 | 
						|
  -DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake \
 | 
						|
  -DCMAKE_EXE_LINKER_FLAGS="-static-libstdc++" \
 | 
						|
  -DLLVM_DIR=$LLVM_DIR \
 | 
						|
  -DWasmEdge_LIB=$WasmEdge_LIB \
 | 
						|
  -Dxrpld=TRUE \
 | 
						|
  -Dtests=TRUE &&
 | 
						|
ccache -z &&
 | 
						|
ninja -j $3 && echo "=== Re-running final link with verbose output ===" && rm -f rippled && ninja -v rippled &&
 | 
						|
ccache -s &&
 | 
						|
strip -s rippled &&
 | 
						|
mv rippled xahaud &&
 | 
						|
echo "=== Full ldd output ===" &&
 | 
						|
ldd xahaud &&
 | 
						|
echo "=== Running libcheck ===" &&
 | 
						|
libcheck xahaud &&
 | 
						|
echo "Build host: `hostname`" > release.info &&
 | 
						|
echo "Build date: `date`" >> release.info &&
 | 
						|
echo "Build md5: `md5sum xahaud`" >> release.info &&
 | 
						|
echo "Git remotes:" >> release.info && 
 | 
						|
git remote -v >> release.info 
 | 
						|
echo "Git status:" >> release.info &&
 | 
						|
git status -v >> release.info &&
 | 
						|
echo "Git log [last 20]:" >> release.info &&
 | 
						|
git log -n 20 >> release.info;
 | 
						|
 | 
						|
if [[ "$4" == "" ]]; then
 | 
						|
  # Non GH, local building
 | 
						|
  echo "Non GH, local building, no Action runner magic"
 | 
						|
else
 | 
						|
  # GH Action, runner
 | 
						|
  cp /io/release-build/xahaud /data/builds/$(date +%Y).$(date +%-m).$(date +%-d)-$(git rev-parse --abbrev-ref HEAD)+$4
 | 
						|
  cp /io/release-build/release.info /data/builds/$(date +%Y).$(date +%-m).$(date +%-d)-$(git rev-parse --abbrev-ref HEAD)+$4.releaseinfo
 | 
						|
  echo "Published build to: http://build.xahau.tech/"
 | 
						|
  echo $(date +%Y).$(date +%-m).$(date +%-d)-$(git rev-parse --abbrev-ref HEAD)+$4
 | 
						|
fi
 | 
						|
 | 
						|
cd ..;
 | 
						|
 | 
						|
mv src/ripple/net/impl/RegisterSSLCerts.cpp.old src/ripple/net/impl/RegisterSSLCerts.cpp;
 | 
						|
mv Builds/CMake/deps/WasmEdge.old Builds/CMake/deps/WasmEdge.cmake;
 | 
						|
rm src/certs/certbundle.h;
 | 
						|
git checkout src/ripple/protocol/impl/BuildInfo.cpp;
 | 
						|
 | 
						|
echo "END INSIDE CONTAINER - CORE"
 |