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