1# Copyright 2020 Evan Miller 2# Copyright 2020 Matt Borland 3# Distributed under the Boost Software License, Version 1.0. 4# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) 5 6name: CI 7on: [ push, pull_request ] 8jobs: 9 ubuntu-focal: 10 runs-on: ubuntu-20.04 11 strategy: 12 fail-fast: false 13 matrix: 14 compiler: [ g++-9, g++-10, clang++-9, clang++-10 ] 15 standard: [ c++11, c++14, c++17, c++2a ] 16 steps: 17 - uses: actions/checkout@v2 18 with: 19 fetch-depth: '0' 20 - uses: mstachniuk/ci-skip@v1 21 with: 22 commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' 23 commit-filter-separator: ';' 24 fail-fast: true 25 - name: Set TOOLSET 26 run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV 27 - name: Add repository 28 run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" 29 - name: Install packages 30 run: sudo apt install g++-9 g++-10 clang-9 clang-10 31 - name: Checkout main boost 32 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 33 - name: Update tools/boostdep 34 run: git submodule update --init tools/boostdep 35 working-directory: ../boost-root 36 - name: Copy files 37 run: cp -r $GITHUB_WORKSPACE/* libs/regex 38 working-directory: ../boost-root 39 - name: Install deps 40 run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex 41 working-directory: ../boost-root 42 - name: Bootstrap 43 run: ./bootstrap.sh 44 working-directory: ../boost-root 45 - name: Generate headers 46 run: ./b2 headers 47 working-directory: ../boost-root 48 - name: Generate user config 49 run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam' 50 working-directory: ../boost-root 51 - name: Config info install 52 run: ../../../b2 config_info_travis_install toolset=$TOOLSET 53 working-directory: ../boost-root/libs/config/test 54 - name: Config info 55 run: ./config_info_travis 56 working-directory: ../boost-root/libs/config/test 57 - name: Test 58 run: ../../../b2 toolset=$TOOLSET 59 working-directory: ../boost-root/libs/regex/test 60 ubuntu-bionic: 61 runs-on: ubuntu-18.04 62 strategy: 63 fail-fast: false 64 matrix: 65 compiler: [ g++-7, g++-8, clang++-7, clang++-8 ] 66 standard: [ c++11, c++14, c++17 ] 67 steps: 68 - uses: actions/checkout@v2 69 with: 70 fetch-depth: '0' 71 - uses: mstachniuk/ci-skip@v1 72 with: 73 commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' 74 commit-filter-separator: ';' 75 fail-fast: true 76 - name: Set TOOLSET 77 run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV 78 - name: Add repository 79 run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" 80 - name: Install packages 81 run: sudo apt install g++-7 g++-8 clang-7 clang-8 82 - name: Checkout main boost 83 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 84 - name: Update tools/boostdep 85 run: git submodule update --init tools/boostdep 86 working-directory: ../boost-root 87 - name: Copy files 88 run: cp -r $GITHUB_WORKSPACE/* libs/regex 89 working-directory: ../boost-root 90 - name: Install deps 91 run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex 92 working-directory: ../boost-root 93 - name: Bootstrap 94 run: ./bootstrap.sh 95 working-directory: ../boost-root 96 - name: Generate headers 97 run: ./b2 headers 98 working-directory: ../boost-root 99 - name: Generate user config 100 run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam' 101 working-directory: ../boost-root 102 - name: Config info install 103 run: ../../../b2 config_info_travis_install toolset=$TOOLSET 104 working-directory: ../boost-root/libs/config/test 105 - name: Config info 106 run: ./config_info_travis 107 working-directory: ../boost-root/libs/config/test 108 - name: Test 109 run: ../../../b2 toolset=$TOOLSET define=CI_SUPPRESS_KNOWN_ISSUES define=SLOW_COMPILER 110 working-directory: ../boost-root/libs/regex/test 111 ubuntu-xenial: 112 runs-on: ubuntu-16.04 113 strategy: 114 fail-fast: false 115 matrix: 116 compiler: [ g++-5, g++-6, clang++-5.0, clang++-6.0 ] 117 standard: [ c++03 c++11, c++14, c++1z ] 118 steps: 119 - uses: actions/checkout@v2 120 with: 121 fetch-depth: '0' 122 - uses: mstachniuk/ci-skip@v1 123 with: 124 commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' 125 commit-filter-separator: ';' 126 fail-fast: true 127 - name: Set TOOLSET 128 run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV 129 - name: Add repository 130 run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" 131 - name: Install packages 132 run: sudo apt install g++-5 g++-6 clang-5.0 clang-6.0 133 - name: Checkout main boost 134 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 135 - name: Update tools/boostdep 136 run: git submodule update --init tools/boostdep 137 working-directory: ../boost-root 138 - name: Copy files 139 run: cp -r $GITHUB_WORKSPACE/* libs/regex 140 working-directory: ../boost-root 141 - name: Install deps 142 run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex 143 working-directory: ../boost-root 144 - name: Bootstrap 145 run: ./bootstrap.sh 146 working-directory: ../boost-root 147 - name: Generate headers 148 run: ./b2 headers 149 working-directory: ../boost-root 150 - name: Generate user config 151 run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam' 152 working-directory: ../boost-root 153 - name: Config info install 154 run: ../../../b2 config_info_travis_install toolset=$TOOLSET 155 working-directory: ../boost-root/libs/config/test 156 - name: Config info 157 run: ./config_info_travis 158 working-directory: ../boost-root/libs/config/test 159 - name: Test 160 run: ../../../b2 toolset=$TOOLSET 161 working-directory: ../boost-root/libs/regex/test 162 macos: 163 runs-on: macos-latest 164 strategy: 165 fail-fast: false 166 matrix: 167 toolset: [ clang ] 168 standard: [ 11, 14, 17, 2a ] 169 steps: 170 - uses: actions/checkout@v2 171 with: 172 fetch-depth: '0' 173 - uses: mstachniuk/ci-skip@v1 174 with: 175 commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[linux];[Linux];[LINUX]' 176 commit-filter-separator: ';' 177 fail-fast: true 178 - name: Checkout main boost 179 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 180 - name: Update tools/boostdep 181 run: git submodule update --init tools/boostdep 182 working-directory: ../boost-root 183 - name: Copy files 184 run: cp -r $GITHUB_WORKSPACE/* libs/regex 185 working-directory: ../boost-root 186 - name: Install deps 187 run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex 188 working-directory: ../boost-root 189 - name: Bootstrap 190 run: ./bootstrap.sh 191 working-directory: ../boost-root 192 - name: Generate headers 193 run: ./b2 headers 194 working-directory: ../boost-root 195 - name: Config info install 196 run: ../../../b2 config_info_travis_install toolset=${{ matrix.toolset }} cxxstd=${{ matrix.standard }} 197 working-directory: ../boost-root/libs/config/test 198 - name: Config info 199 run: ./config_info_travis 200 working-directory: ../boost-root/libs/config/test 201 - name: Test 202 run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=${{ matrix.standard }} 203 working-directory: ../boost-root/libs/regex/test 204 windows_gcc: 205 runs-on: windows-latest 206 defaults: 207 run: 208 shell: cmd 209 env: 210 ARGS: toolset=${{ matrix.toolset }} address-model=64 cxxstd=${{ matrix.standard }} 211 strategy: 212 fail-fast: false 213 matrix: 214 toolset: [ gcc ] 215 standard: [ 11, 14, 17, 2a ] 216 steps: 217 - uses: actions/checkout@v2 218 with: 219 fetch-depth: '0' 220 - uses: mstachniuk/ci-skip@v1 221 with: 222 commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]' 223 commit-filter-separator: ';' 224 fail-fast: true 225 - name: Checkout main boost 226 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 227 - name: Update tools/boostdep 228 run: git submodule update --init tools/boostdep 229 working-directory: ../boost-root 230 - name: Copy files 231 run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\regex 232 working-directory: ../boost-root 233 - name: Install deps 234 run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex 235 working-directory: ../boost-root 236 - name: Bootstrap 237 run: bootstrap 238 working-directory: ../boost-root 239 - name: Generate headers 240 run: b2 headers 241 working-directory: ../boost-root 242 - name: Config info install 243 run: ..\..\..\b2 config_info_travis_install %ARGS% 244 working-directory: ../boost-root/libs/config/test 245 - name: Config info 246 run: config_info_travis 247 working-directory: ../boost-root/libs/config/test 248 - name: Test 249 run: ..\..\..\b2 --hash %ARGS% 250 working-directory: ../boost-root/libs/regex/test 251 windows_msvc_14_0: 252 runs-on: windows-latest 253 defaults: 254 run: 255 shell: cmd 256 env: 257 ARGS: toolset=${{ matrix.toolset }} address-model=64 cxxstd=${{ matrix.standard }} 258 strategy: 259 fail-fast: false 260 matrix: 261 toolset: [ msvc-14.0 ] 262 standard: [ 14, 17 ] 263 steps: 264 - uses: actions/checkout@v2 265 with: 266 fetch-depth: '0' 267 - uses: mstachniuk/ci-skip@v1 268 with: 269 commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]' 270 commit-filter-separator: ';' 271 fail-fast: true 272 - name: Checkout main boost 273 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 274 - name: Update tools/boostdep 275 run: git submodule update --init tools/boostdep 276 working-directory: ../boost-root 277 - name: Copy files 278 run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\regex 279 working-directory: ../boost-root 280 - name: Install deps 281 run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex 282 working-directory: ../boost-root 283 - name: Bootstrap 284 run: bootstrap 285 working-directory: ../boost-root 286 - name: Generate headers 287 run: b2 headers 288 working-directory: ../boost-root 289 - name: Config info install 290 run: ..\..\..\b2 config_info_travis_install %ARGS% 291 working-directory: ../boost-root/libs/config/test 292 - name: Config info 293 run: config_info_travis 294 working-directory: ../boost-root/libs/config/test 295 - name: Test 296 run: ..\..\..\b2 --hash %ARGS% 297 working-directory: ../boost-root/libs/regex/test 298 windows_msvc_14_2: 299 runs-on: windows-latest 300 defaults: 301 run: 302 shell: cmd 303 env: 304 ARGS: toolset=${{ matrix.toolset }} address-model=64 cxxstd=${{ matrix.standard }} 305 strategy: 306 fail-fast: false 307 matrix: 308 toolset: [ msvc-14.2 ] 309 standard: [ 14, 17, latest ] 310 steps: 311 - uses: actions/checkout@v2 312 with: 313 fetch-depth: '0' 314 - uses: mstachniuk/ci-skip@v1 315 with: 316 commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]' 317 commit-filter-separator: ';' 318 fail-fast: true 319 - name: Checkout main boost 320 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 321 - name: Update tools/boostdep 322 run: git submodule update --init tools/boostdep 323 working-directory: ../boost-root 324 - name: Copy files 325 run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\regex 326 working-directory: ../boost-root 327 - name: Install deps 328 run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex 329 working-directory: ../boost-root 330 - name: Bootstrap 331 run: bootstrap 332 working-directory: ../boost-root 333 - name: Generate headers 334 run: b2 headers 335 working-directory: ../boost-root 336 - name: Config info install 337 run: ..\..\..\b2 config_info_travis_install %ARGS% 338 working-directory: ../boost-root/libs/config/test 339 - name: Config info 340 run: config_info_travis 341 working-directory: ../boost-root/libs/config/test 342 - name: Test 343 run: ..\..\..\b2 --hash %ARGS% 344 working-directory: ../boost-root/libs/regex/test 345 ubuntu-cmake-install: 346 runs-on: ubuntu-20.04 347 strategy: 348 fail-fast: false 349 steps: 350 - uses: actions/checkout@v2 351 with: 352 fetch-depth: '0' 353 - name: Checkout main boost 354 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 355 - name: Update tools/boostdep 356 run: git submodule update --init tools/boostdep 357 working-directory: ../boost-root 358 - name: Copy files 359 run: cp -r $GITHUB_WORKSPACE/* libs/regex 360 working-directory: ../boost-root 361 - name: Install deps 362 run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex 363 working-directory: ../boost-root 364 - name: Bootstrap 365 run: ./bootstrap.sh 366 working-directory: ../boost-root 367 - name: CMake Test 368 working-directory: ../boost-root 369 run: | 370 mkdir __build__ && cd __build__ 371 cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES="regex;core" -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=~/.local .. 372 cmake --build . --target install 373 cd ../libs/regex/test/cmake_install_test && mkdir __build__ && cd __build__ 374 cmake -DCMAKE_INSTALL_PREFIX=~/.local .. 375 cmake --build . 376 cmake --build . --target check 377 ubuntu-cmake-check: 378 runs-on: ubuntu-20.04 379 strategy: 380 fail-fast: false 381 steps: 382 - uses: actions/checkout@v2 383 with: 384 fetch-depth: '0' 385 - name: Checkout main boost 386 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 387 - name: Update tools/boostdep 388 run: git submodule update --init tools/boostdep 389 working-directory: ../boost-root 390 - name: Copy files 391 run: cp -r $GITHUB_WORKSPACE/* libs/regex 392 working-directory: ../boost-root 393 - name: Install deps 394 run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex 395 working-directory: ../boost-root 396 - name: Bootstrap 397 run: ./bootstrap.sh 398 working-directory: ../boost-root 399 - name: CMake Test 400 working-directory: ../boost-root/libs/regex/test 401 run: | 402 cd cmake_subdir_test && mkdir __build__ && cd __build__ 403 cmake .. 404 cmake --build . 405 cmake --build . --target check 406