forked from stepanvanecek/sys-sage
-
Notifications
You must be signed in to change notification settings - Fork 8
52 lines (44 loc) · 1.6 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
on: [push]
jobs:
test:
name: Unit Tests
uses: ./.github/workflows/test.yml
asan:
name: Address Sanitizer
needs: test
uses: ./.github/workflows/test.yml
with:
flags: -DTEST_ASAN=OFF
# TODO: Change to -DTEST_ASAN=ON when ready
tsan:
name: Thread Sanitizer
needs: test
uses: ./.github/workflows/test.yml
with:
flags: -DTEST_TSAN=ON
ubsan:
name: Undefined Behaviour Sanitizer
needs: test
uses: ./.github/workflows/test.yml
with:
flags: -DTEST_UBSAN=ON
# check documentation CI so that unnecessary files (.cpp, examples/,...) can be left out
doc:
name: Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
- name: Install Doxygen
run: sudo apt-get install -y doxygen
- name: Install coverxygen
run: pip3 install coverxygen
- name: Generate documentation
run: cd docs && doxygen Doxyfile
- name: Documentation coverage
# Exclude parsers, external_interfaces, examples, data-sources and .cpp files
run: cd docs && python3 -m coverxygen --verbose --xml-dir xml --src-dir ../src/ --output doc-coverage.info --format json-v3 --scope public,protected --kind enum,enumvalue,friend,typedef,function,class,struct,union,define,file,namespace --exclude '.*\/parsers\/.*' --exclude '.*\/external_interfaces\/.*' --exclude '.*\/examples\/.*' --exclude '.*\/data-sources\/.*' --exclude '.*\.cpp$'
- name: Check documentation completeness
run: cd docs && ./check_docs.sh