• 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          echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
123          LIBRARY=${GITHUB_REPOSITORY#*/}
124          echo LIBRARY: $LIBRARY
125          echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
126          echo GITHUB_BASE_REF: $GITHUB_BASE_REF
127          echo GITHUB_REF: $GITHUB_REF
128          REF=${GITHUB_BASE_REF:-$GITHUB_REF}
129          REF=${REF#refs/heads/}
130          echo REF: $REF
131          BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
132          echo BOOST_BRANCH: $BOOST_BRANCH
133          cd ..
134          git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
135          cd boost-root
136          cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
137          git submodule update --init tools/boostdep
138          python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
139          ./bootstrap.sh
140          ./b2 -d0 headers
141
142      - name: Create user-config.jam
143        if: matrix.compiler
144        run: |
145          echo "using ${{matrix.toolset}} : : ${{matrix.compiler}} ;" > ~/user-config.jam
146
147      - name: Run tests
148        run: |
149          cd ../boost-root
150          ./b2 -j3 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} variant=debug,release
151
152  windows:
153    strategy:
154      fail-fast: false
155      matrix:
156        include:
157          - toolset: msvc-14.1
158            cxxstd: "14,17,latest"
159            addrmd: 32,64
160            os: windows-2016
161          - toolset: msvc-14.2
162            cxxstd: "14,17,latest"
163            addrmd: 32,64
164            os: windows-2019
165          - toolset: gcc
166            cxxstd: "03,11,14,17,2a"
167            addrmd: 64
168            os: windows-2019
169
170    runs-on: ${{matrix.os}}
171
172    steps:
173      - uses: actions/checkout@v2
174
175      - name: Setup Boost
176        shell: cmd
177        run: |
178          echo GITHUB_REPOSITORY: %GITHUB_REPOSITORY%
179          for /f %%i in ("%GITHUB_REPOSITORY%") do set LIBRARY=%%~nxi
180          echo LIBRARY: %LIBRARY%
181          echo LIBRARY=%LIBRARY%>>%GITHUB_ENV%
182          echo GITHUB_BASE_REF: %GITHUB_BASE_REF%
183          echo GITHUB_REF: %GITHUB_REF%
184          if "%GITHUB_BASE_REF%" == "" set GITHUB_BASE_REF=%GITHUB_REF%
185          set BOOST_BRANCH=develop
186          for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master
187          echo BOOST_BRANCH: %BOOST_BRANCH%
188          cd ..
189          git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
190          cd boost-root
191          xcopy /s /e /q %GITHUB_WORKSPACE% libs\%LIBRARY%\
192          git submodule update --init tools/boostdep
193          python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" %LIBRARY%
194          cmd /c bootstrap
195          b2 -d0 headers
196
197      - name: Run tests
198        shell: cmd
199        run: |
200          cd ../boost-root
201          b2 -j3 libs/%LIBRARY%/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model=${{matrix.addrmd}} variant=debug,release
202