Skip to content

[Src && Example && CI/CD] Make it adapt to UNIX, fix some bugs and implement RPC module #305

[Src && Example && CI/CD] Make it adapt to UNIX, fix some bugs and implement RPC module

[Src && Example && CI/CD] Make it adapt to UNIX, fix some bugs and implement RPC module #305

Workflow file for this run

name: C/C++ CI
on:
push:
branches:
- '*'
pull_request:
branches:
- '*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: init
run: mkdir build
- name: Install protobuf manually
run: |
sudo apt-get install libtool pkg-config wget git ninja-build
git clone --recursive https://github.com/protocolbuffers/protobuf.git
cd protobuf
git checkout tags/v24.2
mkdir build
cd build
cmake -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release -G Ninja ..
ninja
sudo ninja install
sudo ldconfig
- name: Install gtest manually
run: sudo apt-get install libgtest-dev && cd /usr/src/gtest && sudo cmake CMakeLists.txt && sudo make && sudo cp lib/*.a /usr/lib && sudo ln -s /usr/lib/libgtest.a /usr/local/lib/libgtest.a && sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/libgtest_main.a
- name: Install llhttp manually
working-directory: ${{github.workspace}}/..
run: git clone https://github.com/nodejs/llhttp.git && cd llhttp && sudo apt-get install npm && npm install && make && sudo make install
- name: cmake
working-directory: build
run: cmake -DProtobuf_DIR=`pkg-config --variable=prefix protobuf` -DCMAKE_BUILD_TYPE=Release -G Ninja ..
- name: ninja
working-directory: build
run: ninja
- name: gtest
working-directory: ${{github.workspace}}/build/output/bin
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: |
for unittest in `ls *unittest`
do
./${unittest}
done