Skip to content

Commit f62555f

Browse files
committed
Add .github/workflows
1 parent 43cc2af commit f62555f

File tree

1 file changed

+201
-0
lines changed

1 file changed

+201
-0
lines changed

.github/workflows/ci.yml

Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- master
8+
- develop
9+
- feature/**
10+
11+
env:
12+
UBSAN_OPTIONS: print_stacktrace=1
13+
14+
jobs:
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

0 commit comments

Comments
 (0)