-
Notifications
You must be signed in to change notification settings - Fork 5
138 lines (115 loc) · 3.28 KB
/
test.yml
File metadata and controls
138 lines (115 loc) · 3.28 KB
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
name: Test
on:
pull_request:
branches:
- main
push:
branches:
- main
workflow_dispatch:
defaults:
run:
shell: bash -leo pipefail {0}
jobs:
test:
name: 'Build and test'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- name: Checkout source
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Create micromamba environment
uses: mamba-org/setup-micromamba@main
with:
environment-file: dev-environment.yml
cache-environment: true
- name: Configure CMake
run: |
cmake -Bbuild -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX
- name: Build with CMake
working-directory: build
run: cmake --build . --parallel 8
- name: Smoke test
working-directory: build
run: |
ls -l git2cpp
./git2cpp -v
- name: Run tests
run: |
pytest -v
coverage:
name: 'Test coverage'
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Create micromamba environment
uses: mamba-org/setup-micromamba@main
with:
environment-file: dev-environment.yml
cache-environment: true
create-args: lcov
- name: Configure CMake
run: |
cmake -Bbuild -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS_DEBUG="-g -O0 --coverage"
- name: Build with CMake
working-directory: build
run: cmake --build . --parallel 8
- name: Run tests
run: |
pytest -v
- name: Collect C++ coverage
run: |
lcov --version
lcov --output-file coverage.lcov --directory . --capture
lcov --output-file coverage.lcov --extract coverage.lcov '*/git2cpp/src/*'
genhtml coverage.lcov --output-directory outdir
- name: Upload artifact containing coverage report
uses: actions/upload-artifact@v6
with:
name: coverage_report
path: outdir
- name: Upload coverage to codecov
uses: codecov/codecov-action@v5
with:
files: coverage.lcov
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
docs:
name: 'Build docs'
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Create micromamba environment
uses: mamba-org/setup-micromamba@main
with:
environment-file: dev-environment.yml
cache-environment: true
- name: Configure CMake
run: |
cmake -Bbuild -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX
- name: Build with CMake
working-directory: build
run: cmake --build . --parallel 8
- name: Install docs dependencies
run: |
python -m pip install myst-parser sphinx sphinx-book-theme
- name: Build docs
working-directory: docs
run: |
make html
- name: Upload built docs
uses: actions/upload-artifact@v6
with:
name: git2cpp-docs
path: docs/_build/html