• 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/align
122          git submodule init libs/assert
123          git submodule init libs/config
124          git submodule init libs/core
125          git submodule init libs/static_assert
126          git submodule init libs/headers
127          git submodule init tools/build
128          git submodule init tools/boost_install
129          git submodule update
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
141          ./b2 -j3 libs/align/test toolset=${{matrix.toolset}} cxxstd=${{matrix.standard}} variant=debug,release
142
143  windows:
144    strategy:
145      fail-fast: false
146      matrix:
147        include:
148          - toolset: msvc-14.1
149            standard: "14,17,latest"
150            target: 32,64
151            os: windows-2016
152          - toolset: msvc-14.2
153            standard: "14,17,latest"
154            target: 32,64
155            os: windows-2019
156          - toolset: gcc
157            standard: "03,11,14,17,2a"
158            target: 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          cd ..
170          git clone --depth 1 https://github.com/boostorg/boost boost
171          cd boost
172          xcopy /s /e /q %GITHUB_WORKSPACE% libs\align\
173          git submodule init libs/assert
174          git submodule init libs/config
175          git submodule init libs/core
176          git submodule init libs/static_assert
177          git submodule init libs/headers
178          git submodule init tools/build
179          git submodule init tools/boost_install
180          git submodule update
181          cmd /c bootstrap
182          b2 -d0 headers
183
184      - name: Run tests
185        shell: cmd
186        run: |
187          cd ../boost
188          b2 -j3 libs/align/test toolset=${{matrix.toolset}} cxxstd=${{matrix.standard}} address-model=${{matrix.target}} variant=debug,release