• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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