Skip to content

[CI/CD] Modify build the toolchain #308

[CI/CD] Modify build the toolchain

[CI/CD] Modify build the toolchain #308

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 -DCMAKE_BUILD_TYPE=Release -G Ninja CMakeLists.txt
sudo ninja
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