- enable gtest and benchmark build. - allow install gtest and benchmark binary. - add test and benchmark step in github action.
59 lines
1.8 KiB
YAML
59 lines
1.8 KiB
YAML
name: YYCC Linux Build
|
|
|
|
on: [workflow_dispatch]
|
|
|
|
jobs:
|
|
linux-build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v4
|
|
- name: Install Dependencies
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install -y build-essential cmake git
|
|
- name: Setup Google Test and Google Benchmark
|
|
run: |
|
|
# Setup Google Test
|
|
git clone -b v1.17.0 https://github.com/google/googletest.git --depth 1 extern/googletest
|
|
cd extern/googletest
|
|
mkdir build install
|
|
cd build
|
|
cmake -DCMAKE_CXX_STANDARD=23 -Dgtest_force_shared_crt=ON -DCMAKE_BUILD_TYPE=Release ..
|
|
cmake --build .
|
|
cmake --install . --prefix=../install
|
|
cd ..
|
|
cd install
|
|
export GTest_ROOT=$(pwd)
|
|
cd ../..
|
|
# Setup Google Benchmark
|
|
git clone -b v1.9.4 https://github.com/google/benchmark.git --depth 1 extern/benchmark
|
|
cd extern/benchmark
|
|
# Create symlink to googletest as required by benchmark
|
|
ln -s ../googletest googletest
|
|
mkdir build install
|
|
cd build
|
|
cmake -DCMAKE_CXX_STANDARD=23 -DBENCHMARK_ENABLE_TESTING=OFF -DCMAKE_BUILD_TYPE=Release ..
|
|
cmake --build .
|
|
cmake --install . --prefix=../install
|
|
cd ..
|
|
cd install
|
|
export benchmark_ROOT=$(pwd)
|
|
cd ../..
|
|
- name: Build YYCC
|
|
run: |
|
|
chmod +x ./.github/linux_build.sh
|
|
./.github/linux_build.sh
|
|
- name: Run YYCC Test
|
|
run: |
|
|
./bin/install/bin/YYCCTest
|
|
- name: Run YYCC Benchmark
|
|
run: |
|
|
./bin/install/bin/YYCCBenchmark
|
|
- name: Upload Built Artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: YYCC-linux-build
|
|
path: bin/install/*
|
|
retention-days: 30 |