mirror of
https://github.com/ton-blockchain/ton
synced 2025-02-12 19:22:37 +00:00
Improve gitactions; separate cpp-check (#346)
* Use ninja build tool and compile blockchain-explorer Ninja builds TON much faster; * Use clang instead of gcc * remove blockchain-explorer since target not found on github action * move ccpcheck to other gitaction * run nativelib-java only against wallets branch for now * rename gitaction * Update windows2019x64-tonlib-java.yml * Update windows2019x64-tonlib-java.yml * Update macos-10.15-tonlib-java.yml * Update windows2019x64-tonlib-java.yml * Update windows2019x64-tonlib-java.yml
This commit is contained in:
parent
8e9ac8d130
commit
85b5be4e70
8 changed files with 245 additions and 38 deletions
22
.github/workflows/docker-ubuntu-image.yml
vendored
22
.github/workflows/docker-ubuntu-image.yml
vendored
|
@ -1,4 +1,4 @@
|
|||
name: Build Docker Ubuntu Image
|
||||
name: Docker Ubuntu 18.04 image
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
@ -12,34 +12,28 @@ env:
|
|||
|
||||
jobs:
|
||||
build-and-push:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
-
|
||||
name: Set up QEMU
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
|
||||
-
|
||||
name: Set up Docker Buildx
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
-
|
||||
name: Login to GitHub Container Registry
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
-
|
||||
name: Build and push
|
||||
- name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
push: true
|
||||
context: ./docker
|
||||
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
|
||||
|
||||
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
|
8
.github/workflows/macos-10.15-compile.yml
vendored
8
.github/workflows/macos-10.15-compile.yml
vendored
|
@ -1,6 +1,10 @@
|
|||
name: C/C++ CI macOS-10.15 Compile
|
||||
|
||||
on: [push,workflow_dispatch]
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
@ -36,4 +40,4 @@ jobs:
|
|||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: ton-macos-binaries
|
||||
path: artifacts
|
||||
path: artifacts
|
60
.github/workflows/macos-10.15-tonlib-java.yml
vendored
Normal file
60
.github/workflows/macos-10.15-tonlib-java.yml
vendored
Normal file
|
@ -0,0 +1,60 @@
|
|||
name: macOS-10.15 tonlib-java
|
||||
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- 'wallets'
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: macos-10.15
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
|
||||
- name: Compile OpenSSL
|
||||
run: |
|
||||
git clone https://github.com/openssl/openssl openssl_1_1_1
|
||||
cd openssl_1_1_1
|
||||
git checkout OpenSSL_1_1_1-stable
|
||||
./Configure --prefix=/usr/local/macos darwin64-x86_64-cc -static -mmacosx-version-min=10.15
|
||||
make build_libs -j4
|
||||
|
||||
- name: Configure & Build
|
||||
run: |
|
||||
rootPath=`pwd`
|
||||
|
||||
export CC=$(which clang)
|
||||
export CXX=$(which clang++)
|
||||
export CCACHE_DISABLE=1
|
||||
|
||||
export JAVA_AWT_LIBRARY=NotNeeded
|
||||
export JAVA_JVM_LIBRARY=NotNeeded
|
||||
export JAVA_INCLUDE_PATH=${JAVA_HOME}/include
|
||||
export JAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include
|
||||
export JAVA_INCLUDE_PATH2=${JAVA_HOME}/include/darwin
|
||||
|
||||
cd example/android/
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
cmake -DOPENSSL_FOUND=1 -DOPENSSL_INCLUDE_DIR=$rootPath/openssl_1_1_1/include -DOPENSSL_CRYPTO_LIBRARY=$rootPath/openssl_1_1_1/libcrypto.a -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.15 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DTON_ONLY_TONLIB=ON ..
|
||||
cmake --build . --target prepare_cross_compiling
|
||||
cmake --build . --target native-lib --config Release
|
||||
|
||||
- name: find & copy binaries
|
||||
run: |
|
||||
mkdir -p artifacts/tonlib-java
|
||||
cp example/android/src/drinkless/org/ton/TonApi.java artifacts/tonlib-java/
|
||||
cp example/android/build/libnative-lib.dylib artifacts/tonlib-java/
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: tonlib-macos-java
|
||||
path: artifacts
|
31
.github/workflows/ubuntu-18.04-compile.yml
vendored
31
.github/workflows/ubuntu-18.04-compile.yml
vendored
|
@ -12,28 +12,21 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- name: Run Cppcheck
|
||||
uses: Bedzior/run-cppcheck@master
|
||||
with:
|
||||
enabled checks: all
|
||||
enable inconclusive: true
|
||||
generate report: true
|
||||
- name: Upload report
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: report
|
||||
path: output
|
||||
- name: mkdir
|
||||
|
||||
- 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: Configure & Build
|
||||
run: |
|
||||
export CC=$(which clang)
|
||||
export CXX=$(which clang++)
|
||||
export CCACHE_DISABLE=1
|
||||
mkdir build
|
||||
- name: cmake all
|
||||
run: |
|
||||
cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
- name: make all
|
||||
run: |
|
||||
cd build
|
||||
make -j4 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
|
||||
cmake -GNinja -DCMAKE_BUILD_TYPE=Release ..
|
||||
ninja 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: |
|
||||
|
|
31
.github/workflows/ubuntu-18.04-ton-ccpcheck.yml
vendored
Normal file
31
.github/workflows/ubuntu-18.04-ton-ccpcheck.yml
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
name: Ubuntu 18.04 TON ccpcheck
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-18.04
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
|
||||
- name: Run Cppcheck
|
||||
uses: Bedzior/run-cppcheck@master
|
||||
with:
|
||||
enabled checks: all
|
||||
enable inconclusive: true
|
||||
generate report: true
|
||||
|
||||
- name: Upload report
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: ton-ccpcheck-report
|
||||
path: output
|
50
.github/workflows/ubuntu-18.04-tonlib-java.yml
vendored
Normal file
50
.github/workflows/ubuntu-18.04-tonlib-java.yml
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
name: Ubuntu 18.04 tonlib-java
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- 'wallets'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-18.04
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v2
|
||||
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: Configure & Build
|
||||
run: |
|
||||
export JAVA_AWT_LIBRARY=NotNeeded
|
||||
export JAVA_JVM_LIBRARY=NotNeeded
|
||||
export JAVA_INCLUDE_PATH=${JAVA_HOME}/include
|
||||
export JAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include
|
||||
export JAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux
|
||||
|
||||
cd example/android/
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DTON_ONLY_TONLIB=ON ..
|
||||
cmake --build . --target prepare_cross_compiling
|
||||
cmake --build . --target native-lib
|
||||
|
||||
- name: find & copy binaries
|
||||
run: |
|
||||
mkdir -p artifacts/tonlib-java
|
||||
cp example/android/src/drinkless/org/ton/TonApi.java artifacts/tonlib-java/
|
||||
cp example/android/build/libnative-lib.so artifacts/tonlib-java/
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: tonlib-ubuntu-java
|
||||
path: artifacts
|
10
.github/workflows/windows2019x64-compile.yml
vendored
10
.github/workflows/windows2019x64-compile.yml
vendored
|
@ -1,6 +1,10 @@
|
|||
name: C/C++ CI Windows Server 2019 x64 Compile
|
||||
|
||||
on: [push,workflow_dispatch]
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
|
||||
defaults:
|
||||
run:
|
||||
|
@ -49,8 +53,8 @@ jobs:
|
|||
cmake -DZLIB_FOUND=1 -DZLIB_INCLUDE_DIR=%root%\zlib -DZLIB_LIBRARY=%root%\zlib\contrib\vstudio\vc14\x64\ZlibStatReleaseWithoutAsm\zlibstat.lib -DOPENSSL_FOUND=1 -DOPENSSL_INCLUDE_DIR=%root%/openssl-1.1/x64/include -DOPENSSL_CRYPTO_LIBRARY=%root%/openssl-1.1/x64/lib/libcrypto.lib -DCMAKE_CXX_FLAGS="/DTD_WINDOWS=1 /EHsc /bigobj /W0" ..
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cd build
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --target 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 --config Release
|
||||
|
||||
- name: Show executables
|
||||
|
|
71
.github/workflows/windows2019x64-tonlib-java.yml
vendored
Normal file
71
.github/workflows/windows2019x64-tonlib-java.yml
vendored
Normal file
|
@ -0,0 +1,71 @@
|
|||
name: Windows 2019 tonlib-java
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- 'wallets'
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: cmd
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: windows-2019
|
||||
|
||||
steps:
|
||||
- name: Get Current OS version
|
||||
run: |
|
||||
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
|
||||
- name: Check out current repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
|
||||
- name: Check out zlib repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: desktop-app/zlib
|
||||
path: zlib
|
||||
|
||||
- name: Setup msbuild.exe
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
|
||||
- name: Compile zlib Win64
|
||||
run: |
|
||||
cd zlib\contrib\vstudio\vc14
|
||||
msbuild zlibstat.vcxproj /p:Configuration=ReleaseWithoutAsm /p:platform=x64 -p:PlatformToolset=v142
|
||||
|
||||
- name: Install precompiled OpenSSL Win64
|
||||
run: |
|
||||
curl -Lo openssl-1.1.1o.zip https://github.com/neodiX42/precompiled-openssl-win64/raw/main/openssl-1.1.1o.zip
|
||||
jar xf openssl-1.1.1o.zip
|
||||
|
||||
- name: Configure & Build
|
||||
run: |
|
||||
set JAVA_AWT_LIBRARY=NotNeeded
|
||||
set JAVA_JVM_LIBRARY=NotNeeded
|
||||
set JAVA_INCLUDE_PATH=${JAVA_HOME}/include
|
||||
set JAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include
|
||||
set JAVA_INCLUDE_PATH2=${JAVA_HOME}/include/win32
|
||||
|
||||
set root=%cd%
|
||||
echo %root%
|
||||
cd example/android
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DZLIB_FOUND=1 -DZLIB_INCLUDE_DIR=%root%\zlib -DZLIB_LIBRARY=%root%\zlib\contrib\vstudio\vc14\x64\ZlibStatReleaseWithoutAsm\zlibstat.lib -DOPENSSL_FOUND=1 -DOPENSSL_INCLUDE_DIR=%root%/openssl-1.1/x64/include -DOPENSSL_CRYPTO_LIBRARY=%root%/openssl-1.1/x64/lib/libcrypto.lib -DTON_ONLY_TONLIB=ON -DCMAKE_CXX_FLAGS="/DTD_WINDOWS=1 /EHsc /bigobj /W0" ..
|
||||
cmake --build . --target native-lib --config Release
|
||||
|
||||
- name: Find & copy binaries
|
||||
run: |
|
||||
mkdir tonlib-java
|
||||
cp example/android/build/Release/native-lib.dll tonlib-java/
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: tonlib-win64-java
|
||||
path: tonlib-java
|
Loading…
Reference in a new issue