• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2016-2020 Peter Dimov
2# Distributed under the Boost Software License, Version 1.0.
3# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
4
5language: cpp
6
7dist: xenial
8
9branches:
10  only:
11    - master
12    - develop
13    - /feature\/.*/
14
15env:
16  matrix:
17    - BOGUS_JOB=true
18
19matrix:
20
21  exclude:
22    - env: BOGUS_JOB=true
23
24  include:
25    - os: linux
26      dist: trusty
27      compiler: g++
28      env: TOOLSET=gcc CXXSTD=03,11
29
30    - os: linux
31      dist: xenial
32      compiler: g++
33      env: TOOLSET=gcc CXXSTD=03,11,14
34
35    - os: linux
36      dist: bionic
37      compiler: g++
38      env: TOOLSET=gcc CXXSTD=03,11,14,17
39
40    - os: linux
41      dist: focal
42      compiler: g++
43      env: TOOLSET=gcc CXXSTD=03,11,14,17
44
45    - os: linux
46      arch: arm64
47      compiler: g++
48      env: TOOLSET=gcc CXXSTD=03,11,14
49
50    - os: linux
51      arch: ppc64le
52      compiler: g++
53      env: TOOLSET=gcc CXXSTD=03,11,14
54
55    - os: linux
56      arch: s390x
57      compiler: g++
58      env: TOOLSET=gcc CXXSTD=03,11,14
59
60    - os: freebsd
61      compiler: clang++
62      env: TOOLSET=clang CXXSTD=03,11,14,17,2a
63
64    - os: linux
65      compiler: g++-4.4
66      env: TOOLSET=gcc CXXSTD=98,0x
67      addons:
68        apt:
69          packages:
70            - g++-4.4
71          sources:
72            - ubuntu-toolchain-r-test
73
74    - os: linux
75      compiler: g++-4.6
76      env: TOOLSET=gcc CXXSTD=03,0x
77      addons:
78        apt:
79          packages:
80            - g++-4.6
81          sources:
82            - ubuntu-toolchain-r-test
83
84    - os: linux
85      dist: bionic
86      compiler: g++-10
87      env: UBSAN=1 TOOLSET=gcc CXXSTD=03,11,14 UBSAN_OPTIONS=print_stacktrace=1 LINKFLAGS=-fuse-ld=gold
88      addons:
89        apt:
90          packages:
91            - g++-10
92          sources:
93            - ubuntu-toolchain-r-test
94
95    - os: linux
96      dist: bionic
97      compiler: g++-10
98      env: UBSAN=1 TOOLSET=gcc CXXSTD=17,2a UBSAN_OPTIONS=print_stacktrace=1 LINKFLAGS=-fuse-ld=gold
99      addons:
100        apt:
101          packages:
102            - g++-10
103          sources:
104            - ubuntu-toolchain-r-test
105
106    - os: linux
107      dist: trusty
108      compiler: /usr/bin/clang++
109      env: TOOLSET=clang COMMENT=clang-3.3 CXXSTD=03,11
110      addons:
111        apt:
112          packages:
113            - clang-3.3
114
115    - os: linux
116      dist: trusty
117      compiler: /usr/bin/clang++
118      env: TOOLSET=clang COMMENT=clang-3.4 CXXSTD=03,11
119      addons:
120        apt:
121          packages:
122            - clang-3.4
123
124    - os: linux
125      compiler: clang++-11
126      env: UBSAN=1 TOOLSET=clang CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1
127      addons:
128        apt:
129          packages:
130            - clang-11
131          sources:
132            - ubuntu-toolchain-r-test
133            - sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-11 main'
134              key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
135
136    - os: linux
137      dist: trusty
138      compiler: clang++-libc++
139      env: UBSAN=1 TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z UBSAN_OPTIONS=print_stacktrace=1
140      addons:
141        apt:
142          packages:
143            - libc++-dev
144
145    - os: linux
146      dist: bionic
147      compiler: clang++-libc++
148      env: UBSAN=1 TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1
149      addons:
150        apt:
151          packages:
152            - libc++-dev
153
154    - os: osx
155      compiler: clang++
156      env: UBSAN=1 TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z UBSAN_OPTIONS=print_stacktrace=1
157
158    - os: linux
159      env: CMAKE_TEST=1
160      script:
161        - mkdir __build__ && cd __build__
162        - cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=smart_ptr -DBUILD_TESTING=ON ..
163        - ctest --output-on-failure -R boost_smart_ptr
164
165    - os: linux
166      compiler: g++
167      env: CMAKE_SUBDIR_TEST=1
168      script:
169      - cd libs/smart_ptr/test/cmake_subdir_test && mkdir __build__ && cd __build__
170      - cmake ..
171      - cmake --build .
172      - cmake --build . --target check
173
174    - os: linux
175      env: CMAKE_INSTALL_TEST=1
176      script:
177        - pip install --user cmake
178        - mkdir __build__ && cd __build__
179        - cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=smart_ptr -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=~/.local ..
180        - cmake --build . --target install
181        - cd ../libs/smart_ptr/test/cmake_install_test && mkdir __build__ && cd __build__
182        - cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
183        - cmake --build .
184        - cmake --build . --target check
185
186install:
187  - BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
188  - cd ..
189  - git clone -b $BOOST_BRANCH https://github.com/boostorg/boost.git boost-root
190  - cd boost-root
191  - git submodule init libs/align
192  - git submodule init libs/assert
193  - git submodule init libs/atomic
194  - git submodule init libs/config
195  - git submodule init libs/container_hash
196  - git submodule init libs/core
197  - git submodule init libs/move
198  - git submodule init libs/predef
199  - git submodule init libs/static_assert
200  - git submodule init libs/throw_exception
201  - git submodule init libs/type_traits
202  - git submodule init libs/detail
203  - git submodule init libs/integer
204  - git submodule init tools/build
205  - git submodule init libs/headers
206  - git submodule init tools/boost_install
207  - git submodule init tools/cmake
208  - git submodule init libs/preprocessor
209  - git submodule init libs/bind
210  - git submodule update # no --jobs 3 on non-amd64
211  - cp -r $TRAVIS_BUILD_DIR/* libs/smart_ptr
212  - ./bootstrap.sh
213  - ./b2 headers
214
215script:
216  - |-
217    echo "using $TOOLSET : : $TRAVIS_COMPILER ;" > ~/user-config.jam
218  - ./b2 -j3 libs/smart_ptr/test toolset=$TOOLSET cxxstd=$CXXSTD variant=debug,release ${UBSAN:+cxxflags=-fsanitize=undefined cxxflags=-fno-sanitize-recover=undefined linkflags=-fsanitize=undefined debug-symbols=on} ${LINKFLAGS:+linkflags=$LINKFLAGS}
219
220notifications:
221  email:
222    on_success: always
223