Skip to content

Commit 6544e1b

Browse files
author
John McFarlane
committed
test mdl
1 parent a873782 commit 6544e1b

File tree

2 files changed

+1
-385
lines changed

2 files changed

+1
-385
lines changed

.github/workflows/test.yml

-384
Original file line numberDiff line numberDiff line change
@@ -7,354 +7,6 @@ on:
77
- '**'
88

99
jobs:
10-
# Build and test many combinations on Linux/OS X using Conan
11-
clang-tidy:
12-
container: johnmcfarlane/cnl_ci:clang-head-libcpp
13-
runs-on: ubuntu-20.04
14-
steps:
15-
- uses: actions/checkout@v2
16-
17-
- name: Initialise Conan
18-
run: |
19-
conan config install $GITHUB_WORKSPACE/.github/conan/settings.yml
20-
21-
- name: Install dependencies
22-
run: |
23-
conan install \
24-
--build=missing \
25-
--profile $GITHUB_WORKSPACE/.github/conan/profiles/linux-clang-head-libc++ \
26-
--settings:host build_type=Release \
27-
--options clang_tidy=True \
28-
--options int128=False \
29-
--options sanitize=False \
30-
--env CONAN_CMAKE_GENERATOR=Ninja \
31-
$GITHUB_WORKSPACE
32-
33-
- name: Build tests
34-
run: conan build --build --configure $GITHUB_WORKSPACE
35-
36-
- name: Test library
37-
run: conan build --test $GITHUB_WORKSPACE
38-
39-
# Build and test latest on Linux using only CMake
40-
cmake:
41-
strategy:
42-
matrix:
43-
compiler: [clang, gcc]
44-
include:
45-
- compiler: clang
46-
stdlib-flag: "-stdlib=libc++"
47-
toolchain: clang-libc++.cmake
48-
container: johnmcfarlane/cnl_ci:clang-head-libcpp
49-
- compiler: gcc
50-
stdlib-flag: ""
51-
toolchain: gcc-head.cmake
52-
container: johnmcfarlane/cnl_ci:gcc-head
53-
build_type: ["Debug", "Release"]
54-
cxx-extensions: ["ON", "OFF"]
55-
exceptions: ["ON", "OFF"]
56-
57-
container: ${{matrix.container}}
58-
runs-on: ubuntu-20.04
59-
60-
steps:
61-
- uses: actions/checkout@v2
62-
63-
- name: Restore caches
64-
uses: actions/cache@v2
65-
with:
66-
path: |
67-
/github/home/.ccache
68-
key: test-${{matrix.compiler}}-${{github.ref}}-${{github.sha}}
69-
restore-keys: |
70-
test-${{matrix.compiler}}-${{github.ref}}-
71-
test-${{matrix.compiler}}-main-
72-
test-${{matrix.compiler}}-
73-
74-
- name: Build and Install GTest
75-
env:
76-
CXXFLAGS: ${{matrix.stdlib-flag}}
77-
run: |
78-
git clone https://github.com/google/googletest.git
79-
cd googletest
80-
git checkout 3c95bf552405fd0cc63cea0ca2f6c4cd89c8d356
81-
cmake \
82-
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=$GITHUB_WORKSPACE/test/toolchain/${{matrix.toolchain}} \
83-
.
84-
cmake --build . --target install
85-
86-
- name: Configure CNL
87-
run: |
88-
cmake \
89-
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
90-
-DCMAKE_CXX_EXTENSIONS=${{matrix.cxx-extensions}} \
91-
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=$GITHUB_WORKSPACE/test/toolchain/${{matrix.toolchain}} \
92-
-DCNL_EXCEPTIONS=${{matrix.exceptions}} \
93-
-DCNL_SANITIZE=ON \
94-
$GITHUB_WORKSPACE
95-
96-
- name: Build CNL
97-
run: cmake --build $GITHUB_WORKSPACE --target test-all
98-
99-
- name: Test CNL
100-
run: ctest --output-on-failure
101-
102-
- name: ccache report
103-
run: ccache -s
104-
105-
# Build and test many combinations on Linux/OS X using Conan
106-
conan:
107-
strategy:
108-
matrix:
109-
name: [
110-
clang-head-libc++, clang-head-libstdc++,
111-
clang-13-libc++, clang-13-libstdc++,
112-
clang-12-libstdc++,
113-
clang-11-libstdc++,
114-
clang-10-libstdc++,
115-
gcc-head, gcc-11, gcc-10, osx-clang-13, osx-gcc-11, gcc-10-armv7
116-
]
117-
include:
118-
# Clang HEAD
119-
- name: clang-head-libc++
120-
generator: "Unix Makefiles"
121-
linux-container: johnmcfarlane/cnl_ci:clang-head-libcpp
122-
os-version: ubuntu-20.04
123-
profile: linux-clang-head-libc++
124-
- name: clang-head-libstdc++
125-
linux-container: johnmcfarlane/cnl_ci:clang-head-libstdcpp
126-
os-version: ubuntu-20.04
127-
profile: linux-clang-head-libstdc++
128-
129-
# Clang-13
130-
- name: clang-13-libc++
131-
linux-container: johnmcfarlane/cnl_ci:clang-13-libcpp
132-
os-version: ubuntu-20.04
133-
profile: linux-clang-13-libc++
134-
- name: clang-13-libstdc++
135-
linux-container: johnmcfarlane/cnl_ci:clang-13-libstdcpp
136-
os-version: ubuntu-20.04
137-
profile: linux-clang-13-libstdc++
138-
139-
# Clang-12 (Contrary)
140-
- name: clang-12-libstdc++
141-
generator: "Unix Makefiles"
142-
linux-container: johnmcfarlane/cnl_ci:clang-12-libstdcpp
143-
os-version: ubuntu-20.04
144-
profile: linux-clang-12-libstdc++
145-
146-
# Clang-11
147-
- name: clang-11-libstdc++
148-
linux-container: johnmcfarlane/cnl_ci:clang-11-libstdcpp
149-
os-version: ubuntu-20.04
150-
profile: linux-clang-11-libstdc++
151-
152-
# Clang-10
153-
- name: clang-10-libstdc++
154-
linux-container: johnmcfarlane/cnl_ci:clang-10-libstdcpp
155-
os-version: ubuntu-20.04
156-
profile: linux-clang-10-libstdc++
157-
158-
# GCC HEAD
159-
- name: gcc-head
160-
linux-container: johnmcfarlane/cnl_ci:gcc-head
161-
os-version: ubuntu-20.04
162-
profile: linux-gcc-head
163-
164-
# GCC-11
165-
- name: gcc-11
166-
linux-container: johnmcfarlane/cnl_ci:gcc-11
167-
os-version: ubuntu-20.04
168-
profile: linux-gcc-11
169-
170-
# GCC-10
171-
- name: gcc-10
172-
generator: "Unix Makefiles"
173-
linux-container: johnmcfarlane/cnl_ci:gcc-10
174-
os-version: ubuntu-20.04
175-
profile: linux-gcc-10
176-
177-
# OS X Clang (latest)
178-
- name: osx-clang-13
179-
os-version: macos-10.15
180-
profile: osx-clang-13
181-
182-
# OS X GCC-11
183-
- name: osx-gcc-11
184-
os-version: macos-10.15
185-
profile: osx-gcc-11
186-
187-
# GCC-10 (for ARMv7)
188-
- name: gcc-10-armv7
189-
linux-container: johnmcfarlane/cnl_ci:gcc-10-arm
190-
os-version: ubuntu-20.04
191-
profile: linux-gcc-10-armv7
192-
193-
container: ${{matrix.linux-container}}
194-
195-
runs-on: ${{matrix.os-version}}
196-
197-
steps:
198-
- uses: actions/checkout@v2
199-
200-
- name: Restore caches
201-
uses: actions/cache@v2
202-
with:
203-
path: |
204-
/github/home/.conan/data
205-
/github/home/.ccache
206-
/Users/runner/Library/Caches/ccache
207-
key: test-${{matrix.name}}-${{github.ref}}-${{github.sha}}
208-
restore-keys: |
209-
test-${{matrix.name}}-${{github.ref}}-
210-
test-${{matrix.name}}-main-
211-
test-${{matrix.name}}-
212-
213-
- name: Install Brew packages
214-
if: ( matrix.os-version == 'macos-10.15' )
215-
run: brew install ccache conan ninja
216-
217-
- name: Initialise Conan
218-
run: |
219-
conan config install $GITHUB_WORKSPACE/.github/conan/settings.yml
220-
221-
- name: Install dependencies
222-
env:
223-
CONAN_CMAKE_GENERATOR: "${{matrix.generator}}"
224-
run: |
225-
conan install \
226-
--build=missing \
227-
--env:build CONAN_CMAKE_GENERATOR="${CONAN_CMAKE_GENERATOR:-Ninja}" \
228-
--env:host CONAN_CMAKE_GENERATOR="${CONAN_CMAKE_GENERATOR:-Ninja}" \
229-
--profile $GITHUB_WORKSPACE/.github/conan/profiles/${{matrix.profile}} \
230-
--settings:build cmake:compiler.cppstd=gnu11 \
231-
$GITHUB_WORKSPACE
232-
233-
- name: Build tests
234-
run: conan build --build --configure --install $GITHUB_WORKSPACE
235-
236-
- name: Test library
237-
if: ( matrix.name != 'gcc-10-armv7' )
238-
run: conan build --test $GITHUB_WORKSPACE
239-
240-
- name: Run benchmarks
241-
if: ( matrix.name != 'clang-11' && matrix.name != 'gcc-10-armv7' )
242-
run: |
243-
./test/benchmark/test-benchmark --benchmark_format=csv | tee result.csv \
244-
"${GITHUB_WORKSPACE}"/test/benchmark/report.py result.csv
245-
246-
- name: ccache report
247-
run: ccache -s
248-
249-
# Build and test on Windows using Conan
250-
windows:
251-
strategy:
252-
matrix:
253-
name: [2022-64, 2022-32, 2019-64, 2019-32]
254-
include:
255-
- name: 2022-64
256-
build-profile: msvc-17-x86_64
257-
host-profile: msvc-17-x86_64
258-
runs-on: "windows-2022"
259-
- name: 2022-32
260-
build-profile: msvc-17-x86_64
261-
host-profile: msvc-17-x86
262-
runs-on: "windows-2022"
263-
- name: 2019-64
264-
build-profile: msvc-16-x86_64
265-
host-profile: msvc-16-x86_64
266-
runs-on: "windows-2019"
267-
- name: 2019-32
268-
build-profile: msvc-16-x86_64
269-
host-profile: msvc-16-x86
270-
runs-on: "windows-2019"
271-
build_type: ["Debug", "Release"]
272-
273-
runs-on: ${{matrix.runs-on}}
274-
275-
steps:
276-
- uses: actions/checkout@v2
277-
278-
- name: Restore caches
279-
uses: actions/cache@v2
280-
with:
281-
path: |
282-
~\AppData\Local\pip\Cache
283-
~\.conan\data
284-
~\.ccache
285-
key: test-${{matrix.name}}-${{github.ref}}-${{github.sha}}
286-
restore-keys: |
287-
test-${{matrix.name}}-${{github.ref}}-
288-
test-${{matrix.name}}-main-
289-
test-${{matrix.name}}-
290-
291-
- name: Install Conan
292-
run: |
293-
pip.exe install conan;
294-
295-
- name: Create build directory
296-
run: mkdir ${{runner.workspace}}\build
297-
298-
- name: Install dependencies
299-
working-directory: ${{runner.workspace}}/build
300-
run: |
301-
conan install `
302-
--build=missing `
303-
--profile:build $env:GITHUB_WORKSPACE/.github/conan/profiles/${{matrix.build-profile}} `
304-
--profile:host $env:GITHUB_WORKSPACE/.github/conan/profiles/${{matrix.host-profile}} `
305-
--settings:build build_type=Release `
306-
--settings:build cmake:compiler.cppstd=17 `
307-
--settings:host build_type="${{matrix.build_type}}" `
308-
$env:GITHUB_WORKSPACE
309-
310-
- name: Build and run tests
311-
working-directory: ${{runner.workspace}}/build
312-
run: conan build --build --configure --test $env:GITHUB_WORKSPACE
313-
314-
- name: Run benchmarks
315-
working-directory: ${{runner.workspace}}/build
316-
run: test\benchmark\${{matrix.build_type}}\test-benchmark.exe
317-
318-
# Install on mature Linux distro using only CMake
319-
install:
320-
runs-on: ubuntu-18.04
321-
steps:
322-
- uses: actions/checkout@v2
323-
324-
- name: Configure CNL
325-
run: cmake $GITHUB_WORKSPACE
326-
327-
- name: Install CNL
328-
run: sudo cmake --build $GITHUB_WORKSPACE --target install
329-
330-
# Test source formatting
331-
clang-format:
332-
runs-on: ubuntu-20.04
333-
container: johnmcfarlane/cnl_ci:clang-13
334-
steps:
335-
- uses: actions/checkout@v2
336-
337-
- name: Format code
338-
shell: bash
339-
run: $GITHUB_WORKSPACE/test/scripts/clang-format
340-
341-
- name: Show/test for changes
342-
shell: bash
343-
run: |
344-
git diff
345-
if [[ `git status --porcelain` ]]; then exit 1; fi
346-
347-
# Test shell scripts
348-
shellcheck:
349-
runs-on: ubuntu-20.04
350-
container: johnmcfarlane/cnl_ci:base-20.04
351-
steps:
352-
- uses: actions/checkout@v2
353-
354-
- name: Run shellcheck
355-
shell: bash
356-
run: $GITHUB_WORKSPACE/test/scripts/shellcheck
357-
35810
# Test markdown
35911
markdownlint:
36012
runs-on: ubuntu-20.04
@@ -366,40 +18,4 @@ jobs:
36618
run: |
36719
sudo snap install mdl
36820
$GITHUB_WORKSPACE/test/scripts/markdownlint
369-
370-
# Test YAML
371-
yamllint:
372-
runs-on: ubuntu-20.04
373-
steps:
374-
- uses: actions/checkout@v2
375-
376-
- name: Run yamllint
377-
shell: bash
378-
run: |
379-
sudo apt install yamllint
380-
$GITHUB_WORKSPACE/test/scripts/yamllint
381-
382-
# Test documentation generation
383-
doxygen:
384-
runs-on: ubuntu-18.04
385-
container: johnmcfarlane/cnl_ci:base-21.10
386-
steps:
387-
- uses: actions/checkout@v2
388-
389-
- name: Test Doxyfile
390-
shell: bash
391-
run: |
392-
doxygen -s -u doc/Doxyfile
393-
rm doc/Doxyfile.bak
394-
git diff --exit-code
395-
396-
- name: Generate documentation
397-
shell: bash
398-
run: $GITHUB_WORKSPACE/doc/generate
399-
400-
- name: Upload documentation
401-
uses: actions/upload-artifact@v2
402-
with:
403-
name: documentation
404-
path: ${{github.workspace}}/htdocs
40521
...

0 commit comments

Comments
 (0)