-
Notifications
You must be signed in to change notification settings - Fork 26
135 lines (113 loc) · 3.29 KB
/
ci.yml
File metadata and controls
135 lines (113 loc) · 3.29 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
name: CI
on:
push:
branches:
- master
pull_request:
schedule:
- cron: '0 0 1 * *'
jobs:
Linux:
name: Ubuntu 22.04
runs-on: ubuntu-22.04
strategy:
matrix:
compiler: [clang++, g++]
env:
NAME: Linux-${{ matrix.compiler }}
CXX: ${{ matrix.compiler }}
steps:
- uses: actions/checkout@v4
- name: CMake tests Linux
shell: bash
run: |
ctest -S .ci.cmake -V
# - name: Upload Prebuilt Binaries
# uses: actions/upload-artifact@v4
# with:
# name: Linux ${{ matrix.compiler }} prebuilt binaries
# path: quickcpplib-v0.1-binaries-linux-x64.tgz
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: Linux ${{ matrix.compiler }} test results
path: prebuilt/merged_junit_results.xml
MacOS:
name: Mac OS
runs-on: macos-latest
env:
NAME: MacOS
steps:
- uses: actions/checkout@v4
- name: CMake tests Mac OS
shell: bash
run: ctest -S .ci.cmake -V -E noexcept
# - name: Upload Prebuilt Binaries
# uses: actions/upload-artifact@v4
# with:
# name: Mac OS prebuilt binaries
# path: quickcpplib-v0.1-binaries-darwin-x64.tgz
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: Mac OS test results
path: prebuilt/merged_junit_results.xml
WinVS2022:
name: Windows VS2022
runs-on: windows-2022
env:
NAME: WinVS2022
steps:
- uses: actions/checkout@v4
- name: CMake tests Windows
shell: bash
run: ctest -S .ci.cmake -V
# - name: Upload Prebuilt Binaries
# uses: actions/upload-artifact@v4
# with:
# name: Windows VS2022 prebuilt binaries
# path: quickcpplib-v0.1-binaries-win64.zip
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: Windows VS2022 test results
path: prebuilt/merged_junit_results.xml
publish-test-results:
name: "Publish Documentation and Unit Tests Results"
needs: [Linux, MacOS, WinVS2022]
runs-on: ubuntu-latest
# the build-and-test job might be skipped, we don't need to run this job then
if: success() || failure()
env:
NAME: Documentation
steps:
- name: Download Artifacts
uses: actions/download-artifact@v4.1.7
with:
path: artifacts
- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
with:
check_name: Unit Test Results
github_token: ${{ secrets.GITHUB_TOKEN }}
files: '**/merged_junit_results.xml'
- name: Checkout Documentation
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Regenerate Documentation
shell: bash
run: |
sudo apt-get install -y doxygen graphviz
ctest -S .docs.cmake -V
- name: Publish Documentation
uses: JamesIves/github-pages-deploy-action@3.7.1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages
FOLDER: doc/html
CLEAN: true