mirror of
https://github.com/ton-blockchain/ton
synced 2025-02-13 11:42:18 +00:00
* integrate static openssl into linux binaries; do not use AVX and AVX2 CPU instructions in windows binaries. * integrate static openssl into linux binaries; do not use AVX and AVX2 CPU instructions in windows binaries.
68 lines
3 KiB
YAML
68 lines
3 KiB
YAML
name: Ubuntu Compile x86-64
|
|
|
|
on: [push,workflow_dispatch,workflow_call]
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-20.04, ubuntu-22.04]
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: 'recursive'
|
|
|
|
- name: Install libraries
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install -y build-essential git make cmake clang libgflags-dev zlib1g-dev libssl-dev libreadline-dev libmicrohttpd-dev pkg-config libgsl-dev python3 python3-dev ninja-build
|
|
|
|
- name: Show CPU flags
|
|
run: |
|
|
cat /proc/cpuinfo
|
|
|
|
- name: Configure & Build
|
|
run: |
|
|
export CC=$(which clang)
|
|
export CXX=$(which clang++)
|
|
export CCACHE_DISABLE=1
|
|
|
|
mkdir build-${{ matrix.os }}
|
|
cd build-${{ matrix.os }}
|
|
|
|
git clone https://github.com/openssl/openssl openssl_1_1_1
|
|
cd openssl_1_1_1
|
|
git checkout OpenSSL_1_1_1-stable
|
|
./config
|
|
make build_libs -j4
|
|
|
|
cd ..
|
|
buildPath=`pwd`
|
|
|
|
cmake -GNinja -DOPENSSL_FOUND=1 -DOPENSSL_INCLUDE_DIR=$buildPath/openssl_1_1_1/include -DOPENSSL_CRYPTO_LIBRARY=$buildPath/openssl_1_1_1/libcrypto.a -DCMAKE_BUILD_TYPE=Release -DPORTABLE=1 -DTON_ARCH= -DCMAKE_CXX_FLAGS="-mavx2" ..
|
|
ninja storage-daemon storage-daemon-cli 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
|
|
|
|
- name: Find & copy binaries
|
|
run: |
|
|
mkdir artifacts-${{ matrix.os }}
|
|
cp build-${{ matrix.os }}/storage/storage-daemon/storage-daemon build-${{ matrix.os }}/storage/storage-daemon/storage-daemon-cli build-${{ matrix.os }}/crypto/fift build-${{ matrix.os }}/crypto/tlbc build-${{ matrix.os }}/crypto/func build-${{ matrix.os }}/crypto/create-state build-${{ matrix.os }}/validator-engine-console/validator-engine-console build-${{ matrix.os }}/tonlib/tonlib-cli build-${{ matrix.os }}/tonlib/libtonlibjson.so.0.5 build-${{ matrix.os }}/http/http-proxy build-${{ matrix.os }}/rldp-http-proxy/rldp-http-proxy build-${{ matrix.os }}/dht-server/dht-server build-${{ matrix.os }}/lite-client/lite-client build-${{ matrix.os }}/validator-engine/validator-engine build-${{ matrix.os }}/utils/generate-random-id build-${{ matrix.os }}/utils/json2tlo build-${{ matrix.os }}/adnl/adnl-proxy artifacts-${{ matrix.os }}
|
|
chmod +x artifacts-${{ matrix.os }}/*
|
|
cp -R crypto/smartcont artifacts-${{ matrix.os }}
|
|
cp -R crypto/fift/lib artifacts-${{ matrix.os }}
|
|
|
|
- name: Simple binaries test
|
|
run: |
|
|
artifacts-${{ matrix.os }}/validator-engine -V
|
|
artifacts-${{ matrix.os }}/lite-client -V
|
|
artifacts-${{ matrix.os }}/fift -V
|
|
artifacts-${{ matrix.os }}/func -V
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@master
|
|
with:
|
|
name: ton-binaries-${{ matrix.os }}
|
|
path: artifacts-${{ matrix.os }}
|