WeDPR-Component ci for full node #369
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: WeDPR-Component ci for full node | |
on: | |
push: | |
paths-ignore: | |
- "docs/**" | |
- "python/**" | |
- "cpp/wedpr-transport/sdk-wrapper/python/bindings/**" | |
- "Changelog.md" | |
- "README.md" | |
pull_request: | |
paths-ignore: | |
- "docs/**" | |
- "python/**" | |
- "Changelog.md" | |
- "README.md" | |
release: | |
types: [published, push] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
env: | |
RUST_BACKTRACE: 1 | |
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true | |
ACTIONS_RUNNER_FORCED_INTERNAL_NODE_VERSION: node16 | |
ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 | |
jobs: | |
build: | |
name: build all | |
runs-on: ${{ matrix.os }} | |
continue-on-error: true | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-13, ubuntu-20.04] | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 5 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly-2022-07-28 | |
override: true | |
- name: Prepare vcpkg | |
if: runner.os != 'Windows' | |
uses: friendlyanon/setup-vcpkg@v1 | |
with: { committish: 51b14cd4e1230dd51c11ffeff6f7d53c61cc5297 } | |
- uses: actions/cache@v2 | |
id: deps_cache | |
with: | |
path: | | |
deps/ | |
c:/vcpkg | |
!c:/vcpkg/.git | |
!c:/vcpkg/buildtrees | |
!c:/vcpkg/packages | |
!c:/vcpkg/downloads | |
key: build-all-${{ matrix.os }}-${{ github.base_ref }}-${{ hashFiles('.github/workflows/cpp_full_node_workflow.yml') }} | |
restore-keys: | | |
build-all-${{ matrix.os }}-${{ github.base_ref }}-${{ hashFiles('.github/workflows/cpp_full_node_workflow.yml') }} | |
build-all-${{ matrix.os }}-${{ github.base_ref }}- | |
build-all-${{ matrix.os }}- | |
- name: Build for linux | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt install -y lcov ccache wget libgmp-dev python3-dev | |
export GCC='gcc-10' | |
export CXX='g++-10' | |
sudo bash -x cpp/tools/install_depends.sh -o ubuntu | |
mkdir -p cpp/build && cd cpp/build && cmake -DBUILD_STATIC=ON -DTESTS=ON -DCOVERAGE=ON -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake ../ | |
echo "Disk usage before delete files: "`df -lh` | |
du -sch ${{ env.VCPKG_ROOT }}/buildtrees/* | |
du -sch ${{ env.VCPKG_ROOT }}/buildtrees/grpc/src/* | |
rm -rf ${{ env.VCPKG_ROOT }}/buildtrees/*/src | |
rm -rf ${{ env.VCPKG_ROOT }}/buildtrees/*/*-dbg | |
rm -rf ${{ env.VCPKG_ROOT }}/buildtrees/*/*-rel | |
echo "Disk usage after delete files: "`df -lh` | |
make -j3 | |
- name: Build for macOS | |
if: runner.os == 'macOS' | |
run: | | |
bash -x cpp/tools/install_depends.sh -o macos | |
brew install libiconv | |
brew reinstall m4 autoconf libtool automake | |
echo "## m4:"`which m4` | |
export DYLD_LIBRARY_PATH=/usr/local/opt/libiconv/lib:${DYLD_LIBRARY_PATH} | |
export LDFLAGS="-L/usr/local/opt/libiconv/lib" | |
export CPPFLAGS="-I/usr/local/opt/libiconv/include" | |
export PATH="/usr/bin:${PATH}" | |
mkdir -p cpp/build && cd cpp/build | |
cmake -DBUILD_STATIC=ON -DTESTS=ON -DCOVERAGE=ON -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake ../ | |
make -j3 | |
- uses: actions/upload-artifact@v4 | |
if: runner.os == 'macOS' | |
with: | |
name: ppc-air-node-macOS | |
path: ./cpp/build/bin/ppc-air-node | |
- uses: actions/upload-artifact@v4 | |
if: runner.os == 'macOS' | |
with: | |
name: ppc-pro-node-macOS | |
path: ./cpp/build/bin/ppc-pro-node | |
- uses: actions/upload-artifact@v4 | |
if: runner.os == 'macOS' | |
with: | |
name: ppc-gateway-service-macOS | |
path: ./cpp/build/bin/ppc-gateway-service | |
- name: Test | |
if: runner.os != 'Windows' | |
run: | | |
cd cpp/build && CTEST_OUTPUT_ON_FAILURE=TRUE make test ARGS="--output-on-failure" | |
- name: Publish Error macos | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-x64-osx-dbg-err.log | |
path: /Users/runner/work/WeDPR-Component/WeDPR-Component/vcpkg/buildtrees/gsasl/build-x64-osx-dbg-err.log | |
- name: Publish Error macos | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: autoconf-x64-osx-err.log | |
path: /Users/runner/work/WeDPR-Component/WeDPR-Component/vcpkg/buildtrees/gsasl/autoconf-x64-osx-err.log | |
build_centos: | |
name: build_centos full node | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
strategy: | |
fail-fast: false | |
matrix: | |
container: | |
- centos-7.9 | |
container: | |
image: docker.io/centos:7 | |
volumes: | |
- /usr/local/share/vcpkg:/usr/local/share/vcpkg | |
- /node20217:/node20217:rw,rshared | |
- ${{ matrix.container == 'centos-7.9' && '/node20217:/__e/node20:ro,rshared' || ' ' }} | |
steps: | |
- name: install nodejs20glibc2.17 | |
if: ${{ matrix.container == 'centos-7.9' }} | |
run: | | |
curl -LO https://unofficial-builds.nodejs.org/download/release/v20.9.0/node-v20.9.0-linux-x64-glibc-217.tar.xz | |
tar -xf node-v20.9.0-linux-x64-glibc-217.tar.xz --strip-components 1 -C /node20217 | |
- name: Check out the repo | |
uses: actions/checkout@v4 | |
- uses: actions/cache@v3 | |
id: deps_cache | |
with: | |
path: | | |
deps/ | |
/usr/local/share/vcpkg/buildtrees | |
/usr/local/share/vcpkg/packages | |
/home/runner/.ccache | |
/Users/runner/.ccache/ | |
key: centos-notest-all-${{ matrix.os }}-${{ github.base_ref }}-${{ hashFiles('.github/workflows/cpp_full_node_workflow.yml') }} | |
restore-keys: | | |
centos-notest-all-${{ matrix.os }}-${{ github.base_ref }}-${{ hashFiles('.github/workflows/cpp_full_node_workflow.yml') }} | |
centos-notest-all-${{ matrix.os }}-${{ github.base_ref }}- | |
centos-notest-all-${{ matrix.os }}- | |
- name: Prepare centos tools | |
run: | | |
rpm -ivh https://cbs.centos.org/kojifiles/packages/centos-release-scl-rh/2/3.el7.centos/noarch/centos-release-scl-rh-2-3.el7.centos.noarch.rpm | |
rpm -ivh https://cbs.centos.org/kojifiles/packages/centos-release-scl/2/3.el7.centos/noarch/centos-release-scl-2-3.el7.centos.noarch.rpm | |
sed -i s/mirror.centos.org/mirrors.aliyun.com/g /etc/yum.repos.d/*.repo | |
sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo | |
sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo | |
cat /etc/yum.repos.d/*.repo | |
yum clean all | |
yum makecache | |
yum update -y | |
yum install -y epel-release centos-release-scl centos-release-scl-rh | |
yum install -y https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm | |
yum install -y libtool wget java-11-openjdk-devel git autoconf automake make gcc gcc-c++ glibc-static glibc-devel cmake3 ccache devtoolset-11 libzstd-devel zlib-devel flex bison python-devel python3-devel | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly-2022-07-28 | |
override: true | |
- name: Prepare vcpkg | |
if: runner.os != 'Windows' | |
uses: friendlyanon/setup-vcpkg@v1 | |
with: { committish: 51b14cd4e1230dd51c11ffeff6f7d53c61cc5297 } | |
- name: Check disk space | |
run: df . -h | |
- name: Free disk space | |
run: | | |
du -sch /usr/share/* | |
du -sch /opt/* | |
- name: Check disk space | |
run: | | |
df . -h | |
du /usr/ -hx -d 4 --threshold=1G | sort -hr | head | |
df /tmp | |
du /tmp | sort -n | |
ls -lh /tmp | |
- name: upgradeDepends | |
run: | | |
wget http://ftp.gnu.org/gnu/automake/automake-1.14.1.tar.gz | |
tar -xf automake-1.14.1.tar.gz | |
cd automake-1.14.1 | |
./configure && make -j4 && make install | |
cd .. | |
- name: DependenciesBuild | |
run: | | |
bash -x cpp/tools/install_depends.sh -o centos | |
alias cmake='cmake3' | |
. /opt/rh/devtoolset-11/enable | |
rm -rf python | |
mkdir -p cpp/build | |
cd cpp/build | |
cmake3 -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake -DBUILD_STATIC=ON -DCMAKE_BUILD_TYPE=Release -DTESTS=ON ../ | |
- name: FreeDiskSpace | |
run: | | |
df -lh | |
du -sch /__w/WeDPR-Component/WeDPR-Component/vcpkg/buildtrees/* | |
du -sch /__w/WeDPR-Component/WeDPR-Component/vcpkg/buildtrees/grpc/src/* | |
rm -rf /__w/WeDPR-Component/WeDPR-Component/vcpkg/buildtrees/grpc/src | |
rm -rf /__w/WeDPR-Component/WeDPR-Component/vcpkg/buildtrees/grpc/*-dbg | |
rm -rf /__w/WeDPR-Component/WeDPR-Component/vcpkg/buildtrees/openssl/src | |
rm -rf /__w/WeDPR-Component/WeDPR-Component/vcpkg/buildtrees/openssl/*-dbg | |
rm -rf /__w/WeDPR-Component/WeDPR-Component/vcpkg/buildtrees/*/*-dbg | |
df -lh | |
- name: Compile | |
run: | | |
alias cmake='cmake3' | |
. /opt/rh/devtoolset-11/enable | |
cd cpp/build && cmake3 --build . --parallel 3 | |
#- name: Test | |
# run: | | |
# export OMP_NUM_THREADS=1 | |
# cd build && CTEST_OUTPUT_ON_FAILURE=TRUE make test | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ppc-air-node-x64 | |
path: ./cpp/build/bin/ppc-air-node | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ppc-pro-node-x64 | |
path: ./cpp/build/bin/ppc-pro-node | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ppc-gateway-service-x64 | |
path: ./cpp/build/bin/ppc-gateway-service |