From 510c2fa01ec9a7b5442fd674dd288d0eb956db01 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Wed, 6 Aug 2025 13:41:10 +0800 Subject: [PATCH] [Chore] (workflow): setup CI for benchmarks --- .github/workflows/benchmark.yml | 46 ++++++++++++++++++++++++++++ MobileGL/MG_Benchmark/CMakeLists.txt | 12 +++++--- 2 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/benchmark.yml diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml new file mode 100644 index 00000000..278db3f2 --- /dev/null +++ b/.github/workflows/benchmark.yml @@ -0,0 +1,46 @@ +name: Benchmark + +on: + push: + branches: [ dev ] + +jobs: + benchmark: + runs-on: ubuntu-latest + env: + BENCH_ROOT: ${{github.workspace}}/MobileGL/MG_Benchmark + + steps: + - name: Checkout repo + uses: actions/checkout@v4 + with: + submodules: true + + - name: Get CMake + uses: lukka/get-cmake@latest + + - name: Prepare Vulkan SDK + uses: humbletim/setup-vulkan-sdk@v1.2.1 + with: + vulkan-query-version: 1.4.304.1 + vulkan-components: Glslang, SPIRV-Cross, SPIRV-Tools, SPIRV-Reflect, SPIRV-Headers + vulkan-use-cache: true + + - name: Test Vulkan SDK Install + run: | + echo "Vulkan SDK Version=='$VULKAN_SDK_VERSION'" + echo "VULKAN_SDK=='$VULKAN_SDK'" + test -n "$VULKAN_SDK_VERSION" || exit 4 + ls $VULKAN_SDK/lib + + - name: Configure CMake + working-directory: ${{env.BENCH_ROOT}} + run: cmake -S . -B build-bench + + - name: Build + working-directory: ${{env.BENCH_ROOT}}/build-bench + run: cmake --build . -j${nproc} + + - name: Test + working-directory: ${{env.BENCH_ROOT}}/build-bench + run: ctest -V \ No newline at end of file diff --git a/MobileGL/MG_Benchmark/CMakeLists.txt b/MobileGL/MG_Benchmark/CMakeLists.txt index 7eb3e71e..8ffe3bb7 100644 --- a/MobileGL/MG_Benchmark/CMakeLists.txt +++ b/MobileGL/MG_Benchmark/CMakeLists.txt @@ -15,11 +15,13 @@ FetchContent_MakeAvailable(benchmark) set(MGL_ROOT ${CMAKE_CURRENT_LIST_DIR}/../..) -add_executable( - SanityBench +add_executable(SanityBench SanityBench.cpp ) -target_link_libraries( - SanityBench - benchmark::benchmark +target_link_libraries(SanityBench + PRIVATE benchmark::benchmark ) + +enable_testing() + +add_test(NAME SanityBench COMMAND SanityBench) \ No newline at end of file