1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-02-15 04:32:21 +00:00
ton/.github/workflows/ubuntu-compile.yml
neodiX42 446b9f536f
Ignore usage of AVX512 and force AVX2 CPU instructions for better binaries' portability. (#580)
* build storage-daemon and storage-daemon-cli binaries

* build storage-daemon and storage-daemon-cli binaries

* build storage-daemon and storage-daemon-cli binaries

* build storage-daemon and storage-daemon-cli binaries

* build storage-daemon and storage-daemon-cli binaries

* build storage-daemon and storage-daemon-cli binaries

* build storage-daemon and storage-daemon-cli binaries

* build storage-daemon and storage-daemon-cli binaries

* build storage-daemon and storage-daemon-cli binaries

* build storage-daemon and storage-daemon-cli binaries

* build storage-daemon and storage-daemon-cli binaries

* build storage-daemon and storage-daemon-cli binaries

* force GSL 2.7.1 version

* force GSL 2.7.1 version

* handle missing BLAS library

* handle missing BLAS library, force GSL 2.7.1 version, build storage-daemon and storage-daemon-cli binaries

* Revert "handle missing BLAS library"

This reverts commit 67ebd4abfa.

* remove GSL

* remove GSL only for 18.04

* remove GSL only for 18.04

* link blas library; leave gsl

* merge upstream

* make more portable binaries by excluding AVX512 CPU flag

* make rocksdb to produce portable binaries

* make rocksdb to produce portable binaries

* make rocksdb to produce portable binaries

* show OS CPU flags & force AVX2

* DPORTABLE=1 and -DTON_ARCH=

* DPORTABLE=1 and -DTON_ARCH= and -DCMAKE_CXX_FLAGS="-mavx2"

* DPORTABLE=1 and -DTON_ARCH= and -DCMAKE_CXX_FLAGS="-mavx2"

* DPORTABLE=1 and -DCMAKE_CXX_FLAGS="-mavx2" only

* Ignore usage of AVX512 and force AVX2 CPU instructions for better binaries portability.

* Ignore usage of AVX512 and force AVX2 CPU instructions for better binaries' portability.

* minor fix
2022-12-30 20:13:10 +03:00

48 lines
2.4 KiB
YAML

name: Ubuntu Compile x86-64
on: [push,workflow_dispatch,workflow_call]
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-18.04, 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 }}
cmake -GNinja -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 }}
cp -R crypto/smartcont artifacts-${{ matrix.os }}
cp -R crypto/fift/lib artifacts-${{ matrix.os }}
- name: Upload artifacts
uses: actions/upload-artifact@master
with:
name: ton-binaries-${{ matrix.os }}
path: artifacts-${{ matrix.os }}