Skip to content
This repository has been archived by the owner on Mar 22, 2024. It is now read-only.

Commit

Permalink
Modernize CI build
Browse files Browse the repository at this point in the history
  • Loading branch information
d-frey committed Apr 5, 2020
1 parent 879f27e commit e196abd
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 71 deletions.
32 changes: 32 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
Checks: >-
bugprone-*,
cppcoreguidelines-slicing,
cppcoreguidelines-special-member-functions,
google-build-explicit-make-pair,
google-build-namespaces,
google-default-arguments,
google-global-names-in-headers,
google-readability-casting,
llvm-*,
-llvm-namespace-comment,
misc-*,
-misc-non-private-member-variables-in-classes,
-misc-unused-alias-decls,
modernize-*,
-modernize-avoid-c-arrays,
-modernize-concat-nested-namespaces,
-modernize-raw-string-literal,
-modernize-use-trailing-return-type,
performance-*,
readability-*,
-readability-avoid-const-params-in-decls,
-readability-magic-numbers,
CheckOptions:
- { key: readability-identifier-naming.ClassCase, value: lower_case }
- { key: readability-identifier-naming.FunctionCase, value: lower_case }
- { key: readability-identifier-naming.ParameterCase, value: lower_case }
- { key: readability-identifier-naming.StructCase, value: aNy_CasE } # PEGTL rules
- { key: readability-identifier-naming.VariableCase, value: lower_case }

WarningsAsErrors: '*'
155 changes: 84 additions & 71 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,158 +2,171 @@ language: generic
os: linux
dist: xenial

matrix:
jobs:
include:
- compiler: gcc
- &gcc-7
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-7']
sources: [ ubuntu-toolchain-r-test ]
packages: [ g++-7 ]
env:
- CXX=g++-7

- compiler: gcc
- &gcc-8
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-8']
sources: [ ubuntu-toolchain-r-test ]
packages: [ g++-8 ]
env:
- CXX=g++-8

- compiler: gcc
- &gcc-9
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-9']
sources: [ ubuntu-toolchain-r-test ]
packages: [ g++-9 ]
env:
- CXX=g++-9

- compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-xenial-5']
packages: ['clang-5.0', 'g++-7']
sources: [ ubuntu-toolchain-r-test, llvm-toolchain-xenial-5 ]
packages: [ clang-5.0, g++-7 ]
env:
- CXX=clang++-5.0

- compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-xenial-6']
packages: ['clang-6.0', 'g++-7']
sources: [ ubuntu-toolchain-r-test, llvm-toolchain-xenial-6 ]
packages: [ clang-6.0, g++-7 ]
env:
- CXX=clang++-6.0

- compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-xenial-7']
packages: ['clang-7', 'g++-7']
sources: [ ubuntu-toolchain-r-test, llvm-toolchain-xenial-7 ]
packages: [ clang-7, g++-7 ]
env:
- CXX=clang++-7

- compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-xenial-8']
packages: ['clang-8', 'g++-8']
sources: [ ubuntu-toolchain-r-test, llvm-toolchain-xenial-8 ]
packages: [ clang-8, g++-8 ]
env:
- CXX=clang++-8

- compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-xenial-8']
packages: ['clang-8', 'g++-8']
sources: &clang-9-sources
- ubuntu-toolchain-r-test
- sourceline: deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
packages: [ clang-9, g++-9 ]
env:
- CXX=clang++-8
- CPPFLAGS=-fms-extensions
- CXX=clang++-9

- os: osx
osx_image: xcode10.3
- &clang-10
compiler: clang
addons:
apt:
sources: &clang-10-sources
- ubuntu-toolchain-r-test
- sourceline: deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
packages: [ clang-10, g++-9 ]
env:
- CXX=clang++
- CXX=clang++-10

- os: osx
osx_image: xcode11.2
- <<: *clang-10
env:
- CXX=clang++-10
- CPPFLAGS="-fms-extensions"

- &osx
os: osx
osx_image: xcode10.3
compiler: clang
env:
- CXX=clang++

- compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-9']
env:
- CXX=g++-9
- CXXFLAGS="-O0 --coverage"
before_script:
- pip install --user cpp-coveralls
script:
- make -kj3 check
- coveralls --gcov gcov-9 --gcov-options '\-lp' --exclude src --exclude include/tao/json/external
- <<: *osx
osx_image: xcode11.3

- compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-9']
- <<: *gcc-9
env:
- CXX=g++-9
- CPPFLAGS="-fsanitize=undefined -fuse-ld=gold"

- compiler: gcc
sudo: required
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-9']
- <<: *gcc-9
env:
- CXX=g++-9
- CPPFLAGS="-fsanitize=address -fuse-ld=gold"

- <<: *clang-10
env:
- CXX=clang++-10
- CPPFLAGS="-fsanitize=undefined"

- <<: *clang-10
env:
- CXX=clang++-10
- CPPFLAGS="-fsanitize=address"

- compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-xenial-8']
packages: ['clang-8', 'g++-8']
sources: *clang-10-sources
packages: [ clang-tidy-10, g++-9 ]
env:
- CXX=clang++-8
- CPPFLAGS=-fsanitize=undefined
- CLANG_TIDY=clang-tidy-10
script:
- make -kj3 clang-tidy

- compiler: clang
sudo: required
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-xenial-8']
packages: ['clang-8', 'g++-8']
env:
- CXX=clang++-8
- CPPFLAGS=-fsanitize=address
sources: *clang-10-sources
packages: [ clang-tools-10, g++-9 ]
script:
- scan-build-10 --use-c++=clang++-10 --status-bugs make -kj3

- compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-9']
sources: [ ubuntu-toolchain-r-test ]
packages: [ g++-9, valgrind ]
env:
- CXX=g++-9
- SPECIAL=valgrind
script:
- mkdir build
- cd build
- cmake ..
- cmake --build .
- cmake --build . --target test
- make -kj3 valgrind

- <<: *gcc-7
env:
- CXX=g++-7
- CXXFLAGS="-O0 --coverage"
before_script:
- pip install --user cpp-coveralls
script:
- make -kj3 check
- coveralls --gcov gcov-7 --gcov-options '\-lp' --exclude src --exclude include/tao/json/external

- compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-xenial-8']
packages: ['clang-format-8', 'g++-8']
sources: *clang-9-sources
packages: [ clang-format-9, g++-9 ]
script:
- clang-format-8 -i -style=file $(find include/ src/ -name '[^.]*.[hc]pp')
- clang-format-9 -i -style=file $(find . -name '[^.]*.[hc]pp')
- git diff --exit-code

script:
Expand Down

0 comments on commit e196abd

Please sign in to comment.