diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml index c678507..f2ce119 100644 --- a/.github/workflows/debug.yml +++ b/.github/workflows/debug.yml @@ -5,17 +5,47 @@ on: branches: [ master ] pull_request: branches: [ master ] + workflow_dispatch: + branches: [ master ] jobs: - build: + build-linux: runs-on: ubuntu-latest steps: - - name: Install gtest manually - run: sudo apt-get install libgtest-dev && cd /usr/src/gtest && sudo cmake CMakeLists.txt && sudo make && sudo cp *.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 - - uses: actions/checkout@v1 - - name: configure - run: mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-Werror" .. - - name: make - run: cd build && make - - name: Run Test - run: /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test + - name: Download, configure and install gtest + run: | + wget https://github.com/google/googletest/archive/release-1.10.0.tar.gz + tar xf release-1.10.0.tar.gz + cd googletest-release-1.10.0 + cmake -DBUILD_SHARED_LIBS=OFF . + sudo make install + - name: Checkout the project + uses: actions/checkout@v1 + - name: Do some tests + run: | + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-Werror" .. + make + /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test + + build-macos: + runs-on: macos-latest + steps: + - name: Download, configure and install gtest + run: | + wget https://github.com/google/googletest/archive/release-1.10.0.tar.gz + tar xf release-1.10.0.tar.gz + cd googletest-release-1.10.0 + cmake -DBUILD_SHARED_LIBS=OFF . + sudo make install + - name: Checkout the project + uses: actions/checkout@v1 + - name: Do some tests + run: | + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-Werror" .. + VERBOSE=1 make + pwd + /Users/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2ac4e09..fc0ca1f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,17 +5,47 @@ on: branches: [ master ] pull_request: branches: [ master ] + workflow_dispatch: + branches: [ master ] jobs: - build: + build-linux: runs-on: ubuntu-latest steps: - - name: Install gtest manually - run: sudo apt-get install libgtest-dev && cd /usr/src/gtest && sudo cmake CMakeLists.txt && sudo make && sudo cp *.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 - - uses: actions/checkout@v1 - - name: configure - run: mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. - - name: make - run: cd build && make - - name: Run Test - run: /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test + - name: Download, configure and install gtest + run: | + wget https://github.com/google/googletest/archive/release-1.11.0.tar.gz + tar xf release-1.11.0.tar.gz + cd googletest-release-1.11.0 + cmake -DBUILD_SHARED_LIBS=OFF . + sudo make install + - name: Checkout the project + uses: actions/checkout@v1 + - name: Do some tests + run: | + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. + make + /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test + + build-macos: + runs-on: macos-latest + steps: + - name: Download, configure and install gtest + run: | + wget https://github.com/google/googletest/archive/release-1.11.0.tar.gz + tar xf release-1.11.0.tar.gz + cd googletest-release-1.11.0 + cmake -DBUILD_SHARED_LIBS=OFF . + sudo make install + - name: Checkout the project + uses: actions/checkout@v1 + - name: Do some tests + run: | + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. + VERBOSE=1 make + pwd + /Users/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test diff --git a/README.md b/README.md index df48fee..064f581 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,13 @@ ![github_actions_gtest_example-Release](https://github.com/bastianhjaeger/github_actions_gtest_example/workflows/github_actions_gtest_example-Release/badge.svg?branch=master) ![github_actions_gtest_example-Debug](https://github.com/bastianhjaeger/github_actions_gtest_example/workflows/github_actions_gtest_example-Debug/badge.svg?branch=master) -Example on how to integrate gtest test into [github actions](https://github.com/features/actions). +Example on how to integrate gtest test into [github actions](https://github.com/features/actions). While there exist other links in the www on how to use it (which did not work for my setup), this repo quickly shows how to add a workflow / action to github that executes your gtest tests and responses with a simple ok / not-ok to highlight on github. -It is plain and simple, but maybe it helps you. +It is plain and simple, but maybe it helps you. # Setup Actions @@ -27,18 +27,25 @@ jobs: build: runs-on: ubuntu-latest steps: - - name: Install gtest manually - run: sudo apt-get install libgtest-dev && cd /usr/src/gtest && sudo cmake CMakeLists.txt && sudo make && sudo cp *.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 - - uses: actions/checkout@v1 - - name: configure - run: mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. - - name: make - run: cd build && make - - name: Run Test - run: /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test -``` - -The important part is the *"Install gtest manually"* section. This is the plain and simple way to add it. + - name: Download, configure and install gtest + run: | + wget https://github.com/google/googletest/archive/release-1.10.0.tar.gz + tar xf release-1.10.0.tar.gz + cd googletest-release-1.10.0 + cmake -DBUILD_SHARED_LIBS=OFF . + sudo make install + - name: Checkout the project + uses: actions/checkout@v1 + - name: Do some tests + run: | + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. + make + /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test + ``` + +The important part is the *"Download, configure and install gtest"* section. This is the plain and simple way to add it. # Result @@ -59,3 +66,7 @@ mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j8 ``` + +# If you only want to use Makefile + +You can `pkg-config --libs gtest gmock` and `pkg-config --cflags gtest gmock`. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 216e5e6..cce8b53 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,7 +2,6 @@ set(header_path "${${PROJECT_NAME}_SOURCE_DIR}/include/${PROJECT_NAME}") set(header ${header_path}/${PROJECT_NAME}.h) set(src ${PROJECT_NAME}.cpp) - add_library(${PROJECT_NAME} SHARED ${header} ${src}) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index e1edae5..a075f6c 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,3 +1,5 @@ +link_directories("/usr/local/lib") + add_executable(${PROJECT_NAME}.test AllTests.cpp ${PROJECT_NAME}Test.cpp) @@ -5,6 +7,9 @@ target_link_libraries(${PROJECT_NAME}.test ${PROJECT_NAME} gtest pthread) target_compile_definitions(${PROJECT_NAME}.test PRIVATE TEST_DIR="${CMAKE_CURRENT_LIST_DIR}/test") - install(TARGETS ${PROJECT_NAME}.test DESTINATION "${tool_dest}") + +# Mac OS X does not look at these paths +target_include_directories(${PROJECT_NAME}.test PRIVATE "/usr/local/include/") +set(CMAKE_LIBRARY_PATH "/usr/local/lib/") diff --git a/test/github_actions_gtest_exampleTest.cpp b/test/github_actions_gtest_exampleTest.cpp index f99e5a9..2fda908 100644 --- a/test/github_actions_gtest_exampleTest.cpp +++ b/test/github_actions_gtest_exampleTest.cpp @@ -1,5 +1,4 @@ #include - #include TEST(githubActionsGtestExampleTest, firstTest) { @@ -10,6 +9,6 @@ TEST(githubActionsGtestExampleTest, addTest) { const int a = 1; const int b = 3; const int result = githubActionsGtestExample::add(a, b); - + EXPECT_EQ( result, a + b ); }