-
Notifications
You must be signed in to change notification settings - Fork 1
171 lines (138 loc) · 4.77 KB
/
ccpp.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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
name: C/C++ CI
on: [push]
defaults:
run:
shell: bash
env:
VCPKG_GIT_COMMIT_ID: 3a3a222be369b556e4635714c8d6acc990e1f13b
VCPKG_GIT_URL: https://github.com/PazerOP/vcpkg.git
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'
X_VCPKG_NUGET_ID_PREFIX: mh-stuff
jobs:
build-linux:
# name: ${{ matrix.compiler }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
MH_STUFF_COMPILE_LIBRARY: [true, false]
# compiler: [clang++-11, clang++-10, g++-10, clang++-9, g++-9, clang++-8, g++-8, clang++-7]
compiler:
- exe: clang++-11
deps: clang-11 libc++-11-dev libc++abi-11-dev
- exe: clang++-10
deps: clang-10 libc++-10-dev libc++abi-10-dev
- exe: clang++-9
deps: clang-9 libc++-9-dev libc++abi-9-dev
- exe: clang++-8
deps: clang-8 libc++-8-dev libc++abi-8-dev
- exe: clang++-7
deps: clang-7 libc++-7-dev libc++abi-7-dev
- exe: g++-10
deps: g++-10
- exe: g++-9
deps: g++-9
- exe: g++-8
deps: g++-8
steps:
- uses: actions/[email protected]
- uses: PazerOP/gha-setup-nuget@HEAD
- uses: lukka/run-vcpkg@v7
id: runvcpkg
with:
setupOnly: true
vcpkgGitCommitId: ${{ env.VCPKG_GIT_COMMIT_ID }}
vcpkgGitURL: ${{ env.VCPKG_GIT_URL }}
- name: Add repos
run: |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 15CF4D18AF4F7421
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main" | sudo tee /etc/apt/sources.list.d/llvm.list
- name: Add repos - llvm-11
if: matrix.compiler.exe == 'clang++-11'
run: echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main" | sudo tee -a /etc/apt/sources.list.d/llvm.list
- name: Add repos - llvm-12
if: matrix.compiler.exe == 'clang++-12'
run: echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-12 main" | sudo tee -a /etc/apt/sources.list.d/llvm.list
- name: Update repos
run: sudo apt update
- name: Install compilers and tools
run: |
# sudo rm -rf /var/lib/apt/lists/*
# sudo apt clean
sudo apt install ${{ matrix.compiler.deps }} ninja-build -y
sudo pip3 install gcovr
echo Ensuring programs work...
${{ matrix.compiler.exe }} --version
ninja --version
gcovr --version
# - name: Run tests
# working-directory: ./test
# run: make -j`grep -c ^processor /proc/cpuinfo` ${{ matrix.compiler }}_test_output.txt
- name: Build
env:
CXX: ${{ matrix.compiler.exe }}
CXXFLAGS: -Wall -Wpedantic -Wextra -Werror
run: |
mkdir build
cd build
cmake --version
cmake -G Ninja \
-DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" \
-DMH_STUFF_COMPILE_LIBRARY=${{ matrix.MH_STUFF_COMPILE_LIBRARY }} \
../
cmake --build .
- name: Run tests
env:
CXX: ${{ matrix.compiler.exe }}
run: |
cd build
ctest --version
ctest --output-on-failure
gcovr --version
gcovr --root "../" --exclude ".*/catch.hpp" --exclude ".*/test_compile_file/.*" --exclude ".*/test/.*" --sort-percentage --html-details "results_${{ matrix.compiler.exe }}.html" .
- name: Save test results
if: ${{ matrix.MH_STUFF_COMPILE_LIBRARY }}
uses: actions/upload-artifact@v2
with:
name: gcovr_results_${{ matrix.compiler.exe }}
path: build/results*.html
build-windows:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
MH_STUFF_COMPILE_LIBRARY: [true, false]
steps:
- uses: actions/[email protected]
- uses: PazerOP/gha-setup-nuget@HEAD
- uses: lukka/run-vcpkg@v7
with:
setupOnly: true
vcpkgGitCommitId: ${{ env.VCPKG_GIT_COMMIT_ID }}
vcpkgGitURL: ${{ env.VCPKG_GIT_URL }}
- uses: seanmiddleditch/gha-setup-ninja@v3
- name: Setup compiler paths
uses: ilammy/[email protected]
- name: Build
run: |
mkdir build
cd build
cmake -G Ninja \
-DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" \
-DMH_STUFF_COMPILE_LIBRARY=${{ matrix.MH_STUFF_COMPILE_LIBRARY }} \
../
cmake --build .
- name: Run tests
run: |
cd build
ctest --output-on-failure
registry-update:
needs: [build-linux, build-windows]
runs-on: ubuntu-latest
steps:
- uses: PazerOP/vcpkg-registry-update@HEAD
with:
port-name: mh-stuff
workflow-pat: ${{ secrets.WORKFLOW_PAT }}