• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2020 Evan Miller
2# Copyright 2020 Matt Borland
3# Copyright 2021 John Maddock
4# Distributed under the Boost Software License, Version 1.0.
5# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
6
7name: CI
8on: [ push, pull_request ]
9jobs:
10  ubuntu-focal:
11    runs-on: ubuntu-20.04
12    strategy:
13      fail-fast: false
14      matrix:
15        compiler: [ g++-9, g++-10, clang++-9, clang++-10 ]
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 Dependencies
34        run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
35        working-directory: ../boost-root
36      - name: Copy files
37        run: cp -r $GITHUB_WORKSPACE/* libs/config
38        working-directory: ../boost-root
39      - name: Bootstrap
40        run: ./bootstrap.sh
41        working-directory: ../boost-root
42      - name: Generate headers
43        run: ./b2 headers
44        working-directory: ../boost-root
45      - name: Generate user config
46        run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam'
47        working-directory: ../boost-root
48      - name: Config info
49        run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17,2a
50        working-directory: ../boost-root/libs/config/test
51      - name: Test
52        run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,2a
53        working-directory: ../boost-root/libs/config/test
54  ubuntu-bionic:
55    runs-on: ubuntu-18.04
56    strategy:
57      fail-fast: false
58      matrix:
59        compiler: [ g++-7, g++-8, clang++-7, clang++-8 ]
60    steps:
61      - uses: actions/checkout@v2
62        with:
63          fetch-depth: '0'
64      - uses: mstachniuk/ci-skip@v1
65        with:
66          commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
67          commit-filter-separator: ';'
68          fail-fast: true
69      - name: Set TOOLSET
70        run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
71      - name: Add repository
72        run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
73      - name: Install packages
74        run: sudo apt install g++-7 g++-8 clang-7 clang-8
75      - name: Checkout main boost
76        run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
77      - name: Update Dependencies
78        run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
79        working-directory: ../boost-root
80      - name: Copy files
81        run: cp -r $GITHUB_WORKSPACE/* libs/config
82        working-directory: ../boost-root
83      - name: Bootstrap
84        run: ./bootstrap.sh
85        working-directory: ../boost-root
86      - name: Generate headers
87        run: ./b2 headers
88        working-directory: ../boost-root
89      - name: Generate user config
90        run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam'
91        working-directory: ../boost-root
92      - name: Config info install
93        run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17
94        working-directory: ../boost-root/libs/config/test
95      - name: Test
96        run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17
97        working-directory: ../boost-root/libs/config/test
98  macos:
99    runs-on: macos-latest
100    strategy:
101      fail-fast: false
102      matrix:
103        toolset: [ clang ]
104    steps:
105      - uses: actions/checkout@v2
106        with:
107          fetch-depth: '0'
108      - uses: mstachniuk/ci-skip@v1
109        with:
110          commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[linux];[Linux];[LINUX]'
111          commit-filter-separator: ';'
112          fail-fast: true
113      - name: Checkout main boost
114        run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
115      - name: Update Dependencies
116        run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
117        working-directory: ../boost-root
118      - name: Copy files
119        run: cp -r $GITHUB_WORKSPACE/* libs/config
120        working-directory: ../boost-root
121      - name: Bootstrap
122        run: ./bootstrap.sh
123        working-directory: ../boost-root
124      - name: Generate headers
125        run: ./b2 headers
126        working-directory: ../boost-root
127      - name: Config info
128        run: ../../../b2 print_config_info toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a
129        working-directory: ../boost-root/libs/config/test
130      - name: Test
131        run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a
132        working-directory: ../boost-root/libs/config/test
133  windows_msvc_14_0:
134    runs-on: windows-latest
135    defaults:
136      run:
137        shell: cmd
138    strategy:
139      fail-fast: false
140      matrix:
141        toolset: [ msvc-14.0 ]
142    steps:
143      - uses: actions/checkout@v2
144        with:
145          fetch-depth: '0'
146      - uses: mstachniuk/ci-skip@v1
147        with:
148          commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]'
149          commit-filter-separator: ';'
150          fail-fast: true
151      - name: Checkout main boost
152        run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
153      - name: Update Dependencies
154        run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
155        working-directory: ../boost-root
156      - name: Copy files
157        run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config
158        working-directory: ../boost-root
159      - name: Bootstrap
160        run: bootstrap
161        working-directory: ../boost-root
162      - name: Generate headers
163        run: b2 headers
164        working-directory: ../boost-root
165      - name: Config info
166        run: ..\..\..\b2 print_config_info cxxstd=14,17 address-model=64 toolset=msvc-14.0
167        working-directory: ../boost-root/libs/config/test
168      - name: Test
169        run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17 toolset=msvc-14.0
170        working-directory: ../boost-root/libs/config/test
171  windows_msvc_14_2:
172    runs-on: windows-latest
173    defaults:
174      run:
175        shell: cmd
176    strategy:
177      fail-fast: false
178      matrix:
179        toolset: [ msvc-14.2 ]
180    steps:
181      - uses: actions/checkout@v2
182        with:
183          fetch-depth: '0'
184      - uses: mstachniuk/ci-skip@v1
185        with:
186          commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]'
187          commit-filter-separator: ';'
188          fail-fast: true
189      - name: Checkout main boost
190        run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
191      - name: Update Dependencies
192        run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
193        working-directory: ../boost-root
194      - name: Copy files
195        run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config
196        working-directory: ../boost-root
197      - name: Bootstrap
198        run: bootstrap
199        working-directory: ../boost-root
200      - name: Generate headers
201        run: b2 headers
202        working-directory: ../boost-root
203      - name: Config info
204        run: ..\..\..\b2 print_config_info cxxstd=14,17,20 address-model=64 toolset=msvc-14.2
205        working-directory: ../boost-root/libs/config/test
206      - name: Test
207        run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17,20 toolset=msvc-14.2
208        working-directory: ../boost-root/libs/config/test
209