• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1name: CI
2
3on:
4  pull_request:
5  push:
6    branches:
7      - master
8      - develop
9      - feature/**
10
11env:
12  UBSAN_OPTIONS: print_stacktrace=1
13
14jobs:
15  posix:
16    strategy:
17      fail-fast: false
18      matrix:
19        include:
20          - toolset: gcc-4.7
21            cxxstd: "03,11"
22            os: ubuntu-16.04
23            install: g++-4.7
24          - toolset: gcc-4.8
25            cxxstd: "03,11"
26            os: ubuntu-16.04
27            install: g++-4.8
28          - toolset: gcc-4.9
29            cxxstd: "03,11"
30            os: ubuntu-16.04
31            install: g++-4.9
32          - toolset: gcc-5
33            cxxstd: "03,11,14,1z"
34            os: ubuntu-16.04
35          - toolset: gcc-6
36            cxxstd: "03,11,14,1z"
37            os: ubuntu-16.04
38            install: g++-6
39          - toolset: gcc-7
40            cxxstd: "03,11,14,17"
41            os: ubuntu-18.04
42          - toolset: gcc-8
43            cxxstd: "03,11,14,17,2a"
44            os: ubuntu-18.04
45          - toolset: gcc-9
46            cxxstd: "03,11,14,17,2a"
47            os: ubuntu-18.04
48          - toolset: gcc-10
49            cxxstd: "03,11,14,17,2a"
50            os: ubuntu-18.04
51          - toolset: clang
52            compiler: clang++-3.5
53            cxxstd: "03,11,14"
54            os: ubuntu-16.04
55            install: clang-3.5
56          - toolset: clang
57            compiler: clang++-3.6
58            cxxstd: "03,11,14"
59            os: ubuntu-16.04
60            install: clang-3.6
61          - toolset: clang
62            compiler: clang++-3.7
63            cxxstd: "03,11,14"
64            os: ubuntu-16.04
65            install: clang-3.7
66          - toolset: clang
67            compiler: clang++-3.8
68            cxxstd: "03,11,14"
69            os: ubuntu-16.04
70            install: clang-3.8
71          - toolset: clang
72            compiler: clang++-3.9
73            cxxstd: "03,11,14"
74            os: ubuntu-16.04
75            install: clang-3.9
76          - toolset: clang
77            compiler: clang++-4.0
78            cxxstd: "03,11,14"
79            os: ubuntu-16.04
80            install: clang-4.0
81          - toolset: clang
82            compiler: clang++-5.0
83            cxxstd: "03,11,14,1z"
84            os: ubuntu-16.04
85            install: clang-5.0
86          - toolset: clang
87            compiler: clang++-6.0
88            cxxstd: "03,11,14,17"
89            os: ubuntu-18.04
90          - toolset: clang
91            compiler: clang++-7
92            cxxstd: "03,11,14,17"
93            os: ubuntu-18.04
94            install: clang-7
95          - toolset: clang
96            compiler: clang++-8
97            cxxstd: "03,11,14,17,2a"
98            os: ubuntu-20.04
99          - toolset: clang
100            compiler: clang++-9
101            cxxstd: "03,11,14,17,2a"
102            os: ubuntu-20.04
103          - toolset: clang
104            compiler: clang++-10
105            cxxstd: "03,11,14,17,2a"
106            os: ubuntu-20.04
107          - toolset: clang
108            cxxstd: "03,11,14,17,2a"
109            os: macos-10.15
110
111    runs-on: ${{matrix.os}}
112
113    steps:
114      - uses: actions/checkout@v2
115
116      - name: Install packages
117        if: matrix.install
118        run: sudo apt install ${{matrix.install}}
119
120      - name: Setup Boost
121        run: |
122          REF=${GITHUB_BASE_REF:-$GITHUB_REF}
123          BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
124          cd ..
125          git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
126          cd boost-root
127          cp -r $GITHUB_WORKSPACE/* libs/exception
128          git submodule update --init tools/boostdep
129          python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" exception
130          ./bootstrap.sh
131          ./b2 -d0 headers
132
133      - name: Create user-config.jam
134        if: matrix.compiler
135        run: |
136          echo "using ${{matrix.toolset}} : : ${{matrix.compiler}} ;" > ~/user-config.jam
137
138      - name: Run tests
139        run: |
140          cd ../boost-root
141          ./b2 -j3 libs/exception/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} variant=debug,release exception-handling=on,off rtti=on,off link=static,shared visibility=hidden,global
142
143  windows:
144    strategy:
145      fail-fast: false
146      matrix:
147        include:
148          - toolset: msvc-14.1
149            cxxstd: "14,17,latest"
150            addrmd: 32,64
151            os: windows-2016
152          - toolset: msvc-14.2
153            cxxstd: "14,17,latest"
154            addrmd: 32,64
155            os: windows-2019
156          - toolset: gcc
157            cxxstd: "03,11,14,17,2a"
158            addrmd: 64
159            os: windows-2019
160
161    runs-on: ${{matrix.os}}
162
163    steps:
164      - uses: actions/checkout@v2
165
166      - name: Setup Boost
167        shell: cmd
168        run: |
169          if "%GITHUB_BASE_REF%" == "" set GITHUB_BASE_REF=%GITHUB_REF%
170          set BOOST_BRANCH=develop
171          if "%GITHUB_BASE_REF%" == "master" set BOOST_BRANCH=master
172          cd ..
173          git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
174          cd boost-root
175          xcopy /s /e /q %GITHUB_WORKSPACE% libs\exception\
176          git submodule update --init tools/boostdep
177          python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" exception
178          cmd /c bootstrap
179          b2 -d0 headers
180
181      - name: Run tests
182        shell: cmd
183        run: |
184          cd ../boost-root
185          b2 -j3 libs/exception/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model=${{matrix.addrmd}} variant=debug,release exception-handling=on,off rtti=on,off
186