diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 8bd81f0..7f0e0a0 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -58,91 +58,124 @@ jobs: matrix: os: [windows, ubuntu, macos] steps: - - name: Checkout + - name: Checkout Project + uses: actions/checkout@v4.1.2 + with: + repository: threeal/cpp-starter + + - name: Checkout Action uses: actions/checkout@v4.1.2 with: path: cmake-action sparse-checkout: | action.yml dist - test sparse-checkout-cone-mode: false - - name: Move Project - run: mv cmake-action/test/* . - - name: Configure and Build Project + id: cmake-action uses: ./cmake-action - - name: Test Project - uses: threeal/ctest-action@v1.0.0 - with: - build-config: Debug - tests-regex: hello_world + - name: Run Project + run: ${{ steps.cmake-action.outputs.build-dir }}/${{ matrix.os == 'windows' && 'Debug/generate_sequence.exe' || 'generate_sequence' }} 5 test-action-with-specified-dirs: name: Test Action With Specified Directories runs-on: ubuntu-latest steps: - - name: Checkout + - name: Checkout Project + uses: actions/checkout@v4.1.2 + with: + repository: threeal/cpp-starter + path: project + + - name: Checkout Action uses: actions/checkout@v4.1.2 with: path: cmake-action sparse-checkout: | action.yml dist - test sparse-checkout-cone-mode: false - name: Configure and Build Project id: cmake-action uses: ./cmake-action with: - source-dir: cmake-action/test + source-dir: project build-dir: output - - name: Test Project - uses: threeal/ctest-action@v1.0.0 - with: - test-dir: output - tests-regex: hello_world + - name: Run Project + run: output/generate_sequence 5 test-action-without-run-build: name: Test Action Without Run Build runs-on: ubuntu-latest steps: - - name: Checkout + - name: Checkout Project + uses: actions/checkout@v4.1.2 + with: + repository: threeal/cpp-starter + + - name: Checkout Action uses: actions/checkout@v4.1.2 with: path: cmake-action sparse-checkout: | action.yml dist - test sparse-checkout-cone-mode: false - name: Modify Project - run: echo 'invalid' >> cmake-action/test/hello_world.cpp + run: echo 'invalid' >> src/main.cpp - name: Configure Project - id: cmake-action uses: ./cmake-action with: - source-dir: cmake-action/test run-build: false + test-action-with-additional-options: + name: Test Action With Additional Options + runs-on: ubuntu-latest + steps: + - name: Checkout Project + uses: actions/checkout@v4.1.2 + with: + repository: threeal/cpp-starter + + - name: Checkout Action + uses: actions/checkout@v4.1.2 + with: + path: cmake-action + sparse-checkout: | + action.yml + dist + sparse-checkout-cone-mode: false + + - name: Configure and Build Project + uses: ./cmake-action + with: + options: BUILD_TESTING=ON + + - name: Test Project + uses: threeal/ctest-action@v1.0.0 + test-action-with-custom-generator: name: Test Action With Custom Generator runs-on: ubuntu-latest steps: - - name: Checkout + - name: Checkout Project + uses: actions/checkout@v4.1.2 + with: + repository: threeal/cpp-starter + + - name: Checkout Action uses: actions/checkout@v4.1.2 with: path: cmake-action sparse-checkout: | action.yml dist - test sparse-checkout-cone-mode: false - name: Setup Ninja @@ -152,7 +185,6 @@ jobs: id: cmake-action uses: ./cmake-action with: - source-dir: cmake-action/test generator: Ninja run-build: false diff --git a/.gitignore b/.gitignore index afd7a91..260b703 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,5 @@ !.eslint* !.git* -build/ coverage/ node_modules/ diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt deleted file mode 100644 index 3e64c27..0000000 --- a/test/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -cmake_minimum_required(VERSION 3.0) -project(test) - -option(CHECK_USING_CLANG "Check if the target is compiled using Clang" OFF) -option(CHECK_SURPASS_WARNING "Check if the target could surpass a compiler warning" OFF) - -if(CHECK_SURPASS_WARNING) - if(MSVC) - set(CMAKE_C_FLAGS "/WX /W4 ${CMAKE_C_FLAGS}") - set(CMAKE_CXX_FLAGS "/WX /W4 ${CMAKE_CXX_FLAGS}") - else() - set(CMAKE_C_FLAGS "-Werror -Wunused-variable ${CMAKE_C_FLAGS}") - set(CMAKE_CXX_FLAGS "-Werror -Wunused-variable ${CMAKE_CXX_FLAGS}") - endif() -endif() - -enable_testing() -add_executable(hello_world hello_world.cpp) -add_test(NAME hello_world COMMAND $) - -list(APPEND LANGS c cpp) -foreach(LANG ${LANGS}) - configure_file(test.in ${CMAKE_CURRENT_BINARY_DIR}/test.${LANG}) - add_executable(test_${LANG} EXCLUDE_FROM_ALL ${CMAKE_CURRENT_BINARY_DIR}/test.${LANG}) - target_compile_definitions( - test_${LANG} PRIVATE - $<$:IS_C> - $<$:CHECK_USING_CLANG> - $<$:CHECK_SURPASS_WARNING> - ) - add_test(NAME test_${LANG} COMMAND $) -endforeach() diff --git a/test/hello_world.cpp b/test/hello_world.cpp deleted file mode 100644 index 2242cf0..0000000 --- a/test/hello_world.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include - -int main() { - std::cout << "Hello world!" << std::endl; - return 0; -} diff --git a/test/test.in b/test/test.in deleted file mode 100644 index 4098a34..0000000 --- a/test/test.in +++ /dev/null @@ -1,19 +0,0 @@ -#ifdef IS_C -#include -#define PRINT(STR) printf(STR); printf("\n") -#else -#include -#define PRINT(STR) std::cout << STR << std::endl -#endif - -int main() { -#ifdef CHECK_SURPASS_WARNING - int unused; -#endif -#if defined(CHECK_USING_CLANG) && !defined(__clang__) - PRINT("compiler is not clang"); - return 1; -#endif - PRINT("all ok"); - return 0; -}