1
0

chore: update github build script.

- enable gtest and benchmark build.
- allow install gtest and benchmark binary.
- add test and benchmark step in github action.
This commit is contained in:
2026-01-22 16:10:54 +08:00
parent fe4193efa7
commit 1c1e709ed1
5 changed files with 114 additions and 66 deletions

View File

@@ -13,32 +13,44 @@ jobs:
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 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 ../..
# # Setup Google Benchmark
# git clone -b v1.9.4 https://github.com/google/benchmark.git 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 ../..
- 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:

View File

@@ -9,32 +9,44 @@ jobs:
steps:
- name: Checkout Repository
uses: actions/checkout@v4
# - name: Setup Google Test and Google Benchmark
# run: |
# # Setup Google Test
# git clone -b v1.17.0 https://github.com/google/googletest.git 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 ../..
# # Setup Google Benchmark
# git clone -b v1.9.4 https://github.com/google/benchmark.git 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 ../..
- 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/macos_build.sh
./.github/macos_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:

View File

@@ -16,28 +16,34 @@ jobs:
steps:
- name: Checkout Repository
uses: actions/checkout@v4
# - name: Setup Google Test and Google Benchmark
# run: |
# # Setup Google Test
# git clone -b v1.17.0 https://github.com/google/googletest.git 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 . --config Release
# cmake --install . --prefix=../install --config Release
# cd ../..
# # Setup Google Benchmark
# git clone -b v1.9.4 https://github.com/google/benchmark.git extern/benchmark
# cd extern/benchmark
# # Create symlink to googletest as required by benchmark
# mklink /D googletest ../googletest
# mkdir build install
# cd build
# cmake -DCMAKE_CXX_STANDARD=23 -DBENCHMARK_ENABLE_TESTING=OFF -DCMAKE_BUILD_TYPE=Release ..
# cmake --build . --config Release
# cmake --install . --prefix=../install --config Release
# cd ../..
- 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 . --config Release
cmake --install . --prefix=../install --config Release
cd ..
cd install
set GTest_ROOT=%CD%
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
mklink /D googletest ../googletest
mkdir build install
cd build
cmake -DCMAKE_CXX_STANDARD=23 -DBENCHMARK_ENABLE_TESTING=OFF -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --config Release
cmake --install . --prefix=../install --config Release
cd ..
cd install
set benchmark_ROOT=%CD%
cd ../..
- name: Build YYCC
shell: cmd
run: |
@@ -46,6 +52,14 @@ jobs:
if not exist %VCVARS% set VCVARS="C:\Program Files\Microsoft Visual Studio\%VS%\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"
call %VCVARS% ${{ matrix.msvc_arch }}
.\.github\windows_build.bat
- name: Run YYCC Test
shell: cmd
run: |
.\bin\install\bin\YYCCTest.exe
- name: Run YYCC Benchmark
shell: cmd
run: |
.\bin\install\bin\YYCCBenchmark.exe
- name: Upload Built Artifact
uses: actions/upload-artifact@v4
with:

View File

@@ -26,3 +26,8 @@ PRIVATE
YYCCommonplace
benchmark::benchmark
)
# Install binary
install(TARGETS YYCCBenchmark
RUNTIME DESTINATION ${YYCC_INSTALL_BIN_PATH}
)

View File

@@ -61,6 +61,11 @@ PRIVATE
GTest::gtest_main
)
# Install binary
install(TARGETS YYCCTest
RUNTIME DESTINATION ${YYCC_INSTALL_BIN_PATH}
)
# Discover all test
include(GoogleTest)
gtest_discover_tests(YYCCTest)