mirror of
				https://github.com/ton-blockchain/ton
				synced 2025-03-09 15:40:10 +00:00 
			
		
		
		
	* fix macOS github actions * fix android tonlib GH action; * fixing wasm GH action * strip binaries * fix randomly failing ubuntu and wasm GH actions * fix randomly failing ubuntu and wasm GH actions * revert some changes * adding more nix scripts and automated native build scripts; debug static ton compilation * minor fix * do not use pkg_config if path specified * move wasm script, run with sudo action script * weird, fixing - cp: missing destination file operand after 'assembly/native/build-ubuntu-20.04-shared.sh' * weird, fixing - cp: missing destination file operand after 'assembly/native/build-ubuntu-20.04-shared.sh' * ok * some adjustments for android and win builds * some adjustments for android and win builds * moving stripping inside the build script * access rights handling; adding simple binaries' tests * make lite-client-common, fift-lib and smc-envelope deliberately static; add -a (artifacts) flag to build scripts; * minor wasm build fix; create separate tonlib android build script; remove outdated __has_trivial_copy(T) * add windows build - WIP * adjust android build; improve win build; * adjust sodium paths for android build; use proper compiler for windows build; * add github windows build auxiliary file * adjust wasm build * add portable ubuntu build * exclude some unstable tests for some time * compile portable binaries on ubuntu-20.04 * exclude some unstable tests * include static gsl * restart builds * restart builds * restart builds * remove libreadline, gsl and blas dependencies in linux build * add macos build script * install missing autoconf in macos builds * enable all tests and see what fails * enable win tests and restart others * enable win tests and fix test-smartcont.cpp * enable win tests * use clang-16 on mac builds, add blockchain-explorer for ubuntu builds, add portable macos build * move sudo part outside a build scripts * move sudo part outside a build scripts * run llvm install with sudo * remove libgnutls28-dev before ubuntu static compilation, include blockchain-explorer into artifacts; remove warning: definition of implicit copy constructor for 'Stat' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy] * rework wrong decision, put back system gnutls, but compile libmicrohttpd with --disable-https * add jenkins pipeline sceleton * WIP jenkins pipeline sceleton * WIP jenkins pipeline changes * WIP jenkins pipeline: add stage timout, zip and group artifacts * WIP jenkins pipeline: macos portable build fix * WIP jenkins pipeline: wording * WIP jenkins pipeline: add android tonlib * WIP jenkins pipeline: add was binaries * WIP jenkins pipeline: add TOTAL_MEMORY 1.5gb to funcfiftlib wasm linking * WIP jenkins pipeline: add nix build on linux aarch64 * WIP jenkins pipeline: funcfiftlib compilation fails that 16mb mem is not enough, increase to 32mb * WIP jenkins pipeline: enable test in nix build * WIP jenkins pipeline: add linux x86-64 nix build * WIP jenkins pipeline: include libs in nix build * WIP jenkins pipeline: include libs in nix build * WIP jenkins pipeline: include mac nix build * WIP jenkins pipeline: include mac nix build * WIP jenkins pipeline: include mac nix build * WIP jenkins pipeline: include mac nix build * WIP jenkins pipeline: include mac nix build * WIP jenkins pipeline: include mac nix build * WIP jenkins pipeline: nix linux arm64 with openssl 1.1 for now * WIP jenkins pipeline: working ubuntu arm64 libtonjson * WIP jenkins pipeline: working ubuntu arm64 libtonjson + minor fix * WIP jenkins pipeline: working ubuntu arm64 libtonjson + minor fix 2 * WIP jenkins pipeline: merry christmas * WIP jenkins pipeline: merry christmas 2 * WIP jenkins pipeline: remove native static builds * WIP jenkins pipeline: enable more tests * WIP jenkins pipeline: zip artifacts better * WIP jenkins pipeline: get rid of path in the final zip * WIP jenkins pipeline: minor fix, include lib and smartcont folders * WIP jenkins pipeline: minor fix, include lib and smartcont folders into nix artifacts also * WIP jenkins pipeline: minor fix * WIP jenkins pipeline: minor fix * adjust github actions for new nix builds * cleanup * cleanup * cleanup * cleanup * rename libtonlibjson.so.0.5 to libtonlibjson.so * Add TON build instructions to README.md * simplify * fix test-tonlib-offline * set timeout per test of 300 sec * set timeout per test of 600 sec for non nix builds * increase test timeout to 900 sec; minor changes * use MS VS 2022 for win TON compilation; update README.md * use MS VS 2022 for win TON compilation; update README.md * change path to MSVC in github workflow * change path to MSVC in groovy pipeline * compile ton on win, with msvc 2022 community and enterprise versions * minor fixes * improve network tests * remove TON compilation against macos-11 github runner * add `choco feature enable -n allowEmptyChecksums` since pkg-config-lite-0.28-1 does not have a checksum * abort win compilation if 3pp can't be downloaded * increase test timeout to 30 min * improving test-catchain
		
			
				
	
	
		
			193 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
			
		
		
	
	
			193 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
| REM execute this script inside elevated (Run as Administrator) console "x64 Native Tools Command Prompt for VS 2022"
 | |
| 
 | |
| echo off
 | |
| 
 | |
| echo Installing chocolatey windows package manager...
 | |
| @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
 | |
| choco -?
 | |
| IF %errorlevel% NEQ 0 (
 | |
|   echo Can't install chocolatey
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| 
 | |
| choco feature enable -n allowEmptyChecksums
 | |
| 
 | |
| echo Installing pkgconfiglite...
 | |
| choco install -y pkgconfiglite
 | |
| IF errorlevel 1 (
 | |
|   echo Can't install pkgconfiglite
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| 
 | |
| echo Installing ninja...
 | |
| choco install -y ninja
 | |
| IF errorlevel 1 (
 | |
|   echo Can't install ninja
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| 
 | |
| if not exist "zlib" (
 | |
| git clone https://github.com/madler/zlib.git
 | |
| cd zlib\contrib\vstudio\vc14
 | |
| msbuild zlibstat.vcxproj /p:Configuration=ReleaseWithoutAsm /p:platform=x64 -p:PlatformToolset=v143
 | |
| 
 | |
| IF errorlevel 1 (
 | |
|   echo Can't install zlib
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| cd ..\..\..\..
 | |
| ) else (
 | |
| echo Using zlib...
 | |
| )
 | |
| 
 | |
| if not exist "secp256k1" (
 | |
| git clone https://github.com/libbitcoin/secp256k1.git
 | |
| cd secp256k1\builds\msvc\vs2017
 | |
| msbuild /p:Configuration=StaticRelease -p:PlatformToolset=v143 -p:Platform=x64
 | |
| IF errorlevel 1 (
 | |
|   echo Can't install secp256k1
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| cd ..\..\..\..
 | |
| ) else (
 | |
| echo Using secp256k1...
 | |
| )
 | |
| 
 | |
| 
 | |
| if not exist "libsodium" (
 | |
| curl  -Lo libsodium-1.0.18-stable-msvc.zip https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable-msvc.zip
 | |
| IF errorlevel 1 (
 | |
|   echo Can't download libsodium
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| unzip libsodium-1.0.18-stable-msvc.zip
 | |
| ) else (
 | |
| echo Using libsodium...
 | |
| )
 | |
| 
 | |
| if not exist "openssl-3.1.4" (
 | |
| curl  -Lo openssl-3.1.4.zip https://github.com/neodiX42/precompiled-openssl-win64/raw/main/openssl-3.1.4.zip
 | |
| IF errorlevel 1 (
 | |
|   echo Can't download OpenSSL
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| unzip -q openssl-3.1.4.zip
 | |
| ) else (
 | |
| echo Using openssl...
 | |
| )
 | |
| 
 | |
| if not exist "libmicrohttpd-0.9.77-w32-bin" (
 | |
| curl  -Lo libmicrohttpd-0.9.77-w32-bin.zip https://github.com/neodiX42/precompiled-openssl-win64/raw/main/libmicrohttpd-0.9.77-w32-bin.zip
 | |
| IF errorlevel 1 (
 | |
|   echo Can't download libmicrohttpd
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| unzip -q libmicrohttpd-0.9.77-w32-bin.zip
 | |
| ) else (
 | |
| echo Using libmicrohttpd...
 | |
| )
 | |
| 
 | |
| if not exist "readline-5.0-1-lib" (
 | |
| curl  -Lo readline-5.0-1-lib.zip https://github.com/neodiX42/precompiled-openssl-win64/raw/main/readline-5.0-1-lib.zip
 | |
| IF errorlevel 1 (
 | |
|   echo Can't download readline
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| unzip -q -d readline-5.0-1-lib readline-5.0-1-lib.zip
 | |
| ) else (
 | |
| echo Using readline...
 | |
| )
 | |
| 
 | |
| 
 | |
| set root=%cd%
 | |
| echo %root%
 | |
| set SODIUM_DIR=%root%\libsodium
 | |
| 
 | |
| mkdir build
 | |
| cd build
 | |
| cmake -GNinja  -DCMAKE_BUILD_TYPE=Release ^
 | |
| -DPORTABLE=1 ^
 | |
| -DSODIUM_USE_STATIC_LIBS=1 ^
 | |
| -DSECP256K1_FOUND=1 ^
 | |
| -DSECP256K1_INCLUDE_DIR=%root%\secp256k1\include ^
 | |
| -DSECP256K1_LIBRARY=%root%\secp256k1\bin\x64\Release\v143\static\secp256k1.lib ^
 | |
| -DMHD_FOUND=1 ^
 | |
| -DMHD_LIBRARY=%root%\libmicrohttpd-0.9.77-w32-bin\x86_64\VS2019\Release-static\libmicrohttpd.lib ^
 | |
| -DMHD_INCLUDE_DIR=%root%\libmicrohttpd-0.9.77-w32-bin\x86_64\VS2019\Release-static ^
 | |
| -DZLIB_FOUND=1 ^
 | |
| -DZLIB_INCLUDE_DIR=%root%\zlib ^
 | |
| -DZLIB_LIBRARIES=%root%\zlib\contrib\vstudio\vc14\x64\ZlibStatReleaseWithoutAsm\zlibstat.lib ^
 | |
| -DOPENSSL_FOUND=1 ^
 | |
| -DOPENSSL_INCLUDE_DIR=%root%/openssl-3.1.4/x64/include ^
 | |
| -DOPENSSL_CRYPTO_LIBRARY=%root%/openssl-3.1.4/x64/lib/libcrypto_static.lib ^
 | |
| -DCMAKE_CXX_FLAGS="/DTD_WINDOWS=1 /EHsc /bigobj" ..
 | |
| IF errorlevel 1 (
 | |
|   echo Can't configure TON
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| 
 | |
| IF "%1"=="-t" (
 | |
| ninja storage-daemon storage-daemon-cli blockchain-explorer fift func tonlib tonlibjson  ^
 | |
| tonlib-cli validator-engine lite-client pow-miner validator-engine-console generate-random-id ^
 | |
| json2tlo dht-server http-proxy rldp-http-proxy adnl-proxy create-state create-hardfork emulator ^
 | |
| test-ed25519 test-ed25519-crypto test-bigint test-vm test-fift test-cells test-smartcont test-net ^
 | |
| test-tdactor test-tdutils test-tonlib-offline test-adnl test-dht test-rldp test-rldp2 test-catchain ^
 | |
| test-fec test-tddb test-db test-validator-session-state
 | |
| IF errorlevel 1 (
 | |
|   echo Can't compile TON
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| ) else (
 | |
| ninja storage-daemon storage-daemon-cli blockchain-explorer fift func tonlib tonlibjson  ^
 | |
| tonlib-cli validator-engine lite-client pow-miner validator-engine-console generate-random-id ^
 | |
| json2tlo dht-server http-proxy rldp-http-proxy adnl-proxy create-state create-hardfork emulator
 | |
| IF errorlevel 1 (
 | |
|   echo Can't compile TON
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| )
 | |
| 
 | |
| copy validator-engine\validator-engine.exe test
 | |
| IF errorlevel 1 (
 | |
|   echo validator-engine.exe does not exist
 | |
|   exit /b %errorlevel%
 | |
| )
 | |
| 
 | |
| IF "%1"=="-t" (
 | |
|   echo Running tests...
 | |
| REM  ctest -C Release --output-on-failure -E "test-catchain|test-actors|test-validator-session-state"
 | |
|   ctest -C Release --output-on-failure --timeout 1800
 | |
|   IF errorlevel 1 (
 | |
|     echo Some tests failed
 | |
|     exit /b %errorlevel%
 | |
|   )
 | |
| )
 | |
| 
 | |
| 
 | |
| echo Creating artifacts...
 | |
| cd ..
 | |
| mkdir artifacts
 | |
| mkdir artifacts\smartcont
 | |
| mkdir artifacts\lib
 | |
| 
 | |
| for %%I in (build\storage\storage-daemon\storage-daemon.exe ^
 | |
| build\storage\storage-daemon\storage-daemon-cli.exe ^
 | |
| build\blockchain-explorer\blockchain-explorer.exe ^
 | |
| build\crypto\fift.exe ^
 | |
| build\crypto\tlbc.exe ^
 | |
| build\crypto\func.exe ^
 | |
| build\crypto\create-state.exe ^
 | |
| build\validator-engine-console\validator-engine-console.exe ^
 | |
| build\tonlib\tonlib-cli.exe ^
 | |
| build\tonlib\tonlibjson.dll ^
 | |
| build\http\http-proxy.exe ^
 | |
| build\rldp-http-proxy\rldp-http-proxy.exe ^
 | |
| build\dht-server\dht-server.exe ^
 | |
| build\lite-client\lite-client.exe ^
 | |
| build\validator-engine\validator-engine.exe ^
 | |
| build\utils\generate-random-id.exe ^
 | |
| build\utils\json2tlo.exe ^
 | |
| build\adnl\adnl-proxy.exe ^
 | |
| build\emulator\emulator.dll) do (strip -g %%I & copy %%I artifacts\)
 | |
| xcopy /e /k /h /i crypto\smartcont artifacts\smartcont
 | |
| xcopy /e /k /h /i crypto\fift\lib artifacts\lib
 |