10
10
MYCI_GIT_USERNAME : igagis
11
11
MYCI_GIT_PASSWORD : ${{ secrets.MYCI_GIT_ACCESS_TOKEN }}
12
12
jobs :
13
+ # #### coverage #####
14
+ coverage :
15
+ runs-on : ubuntu-latest
16
+ container : debian:bookworm
17
+ name : coverage - measure
18
+ env :
19
+ linux_distro : debian
20
+ linux_release : bookworm
21
+ steps :
22
+ - name : add cppfw deb repo
23
+ uses : myci-actions/add-deb-repo@main
24
+ with :
25
+ repo : deb https://gagis.hopto.org/repo/cppfw/${{ env.linux_distro }} ${{ env.linux_release }} main
26
+ repo-name : cppfw
27
+ keys-asc : https://gagis.hopto.org/repo/cppfw/pubkey.gpg
28
+ install : myci locales git pipx
29
+ - name : add llvm repo (for clang-format)
30
+ uses : myci-actions/add-deb-repo@main
31
+ with :
32
+ repo : deb http://apt.llvm.org/${{ env.linux_release }} llvm-toolchain-${{ env.linux_release }} main
33
+ repo-name : llvm
34
+ keys-asc : https://apt.llvm.org/llvm-snapshot.gpg.key
35
+ - name : git clone
36
+ uses : myci-actions/checkout@main
37
+ - name : prepare debian package
38
+ run : myci-deb-prepare.sh
39
+ - name : install deps
40
+ run : myci-deb-install-build-deps.sh
41
+ - name : add DE locale
42
+ # needed for testing that locale with "," as decimal delimiter does not break the parsing with string_parser
43
+ run : |
44
+ echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen
45
+ locale-gen
46
+ - name : build
47
+ run : make config=gcov
48
+ - name : test
49
+ run : make config=gcov test
50
+ - name : generate coverage report
51
+ # due to some bug in gcov, we need to use --gcov-ignore-parse-errors=negative_hits.warn
52
+ run : pipx run gcovr --gcov-ignore-parse-errors=negative_hits.warn --exclude-throw-branches --filter src/ --cobertura > cobertura.xml
53
+ - name : upload coverage report to artifacts
54
+ uses : actions/upload-artifact@v4
55
+ with :
56
+ name : cobertura.xml
57
+ path : cobertura.xml
58
+ - name : upload coverage data to codecov.io
59
+ uses : codecov/codecov-action@v5
60
+ if : always() # even if previous steps fail, this one needs to be run
61
+ with :
62
+ token : ${{ secrets.CODECOV_TOKEN }}
63
+ # do not search for coverage files automatically, upload only specified files
64
+ disable_search : true
65
+ files : cobertura.xml
66
+ # flags: unittests # optional
67
+ name : codecov-umbrella # optional
68
+ fail_ci_if_error : true # optional (default = false)
69
+ verbose : true # optional (default = false)
70
+ - name : upload test report to codecov.io
71
+ if : always() # even if previous steps fail, this one needs to be run
72
+ uses : codecov/test-results-action@v1
73
+ with :
74
+ token : ${{ secrets.CODECOV_TOKEN }}
75
+ # do not search for coverage files automatically, upload only specified files
76
+ disable_search : true
77
+ files : tests/unit/out/gcov/junit.xml
78
+ name : codecov-umbrella # optional
79
+ fail_ci_if_error : true # optional (default = false)
80
+ verbose : true # optional (default = false)
13
81
# #### sanitizer #####
14
82
sanitizer :
15
83
strategy :
16
84
fail-fast : false
17
85
matrix :
18
86
include :
19
- - {os: debian, codename: bookworm, image_owner: , package_type: deb}
20
- - {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [arm32,docker]}
87
+ - {os: debian, codename: bookworm, image_owner: }
88
+ - {os: debian, codename: bookworm, image_owner: arm32v7/, labels: [ubuntu-24.04-arm]}
89
+ - {os: debian, codename: bookworm, image_owner: arm64v8/, labels: [ubuntu-24.04-arm]}
21
90
runs-on : ${{ (matrix.labels == '' && 'ubuntu-latest') || matrix.labels }}
22
91
container : ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
23
92
name : sanitizer - ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
29
98
repo-name : cppfw
30
99
keys-asc : https://gagis.hopto.org/repo/cppfw/pubkey.gpg
31
100
install : myci git
101
+ - name : add llvm repo (for clang-format)
102
+ uses : myci-actions/add-deb-repo@main
103
+ with :
104
+ repo : deb http://apt.llvm.org/${{ matrix.codename }} llvm-toolchain-${{ matrix.codename }} main
105
+ repo-name : llvm
106
+ keys-asc : https://apt.llvm.org/llvm-snapshot.gpg.key
32
107
- name : install ci tools
33
108
run : |
34
109
apt install --assume-yes devscripts equivs
@@ -50,21 +125,21 @@ jobs:
50
125
include :
51
126
# - {os: debian, codename: buster, image_owner: , package_type: deb}
52
127
# - {os: debian, codename: buster, image_owner: i386/, package_type: deb, labels: [i386,docker]}
53
- # - {os: debian, codename: buster, image_owner: arm32v7/, package_type: deb, labels: [arm,docker ]}
128
+ # - {os: debian, codename: buster, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04- arm]}
54
129
# - {os: debian, codename: bullseye, image_owner: , package_type: deb}
55
130
# - {os: debian, codename: bullseye, image_owner: i386/, package_type: deb, labels: [i386,docker]}
56
- # - {os: debian, codename: bullseye, image_owner: arm32v7/, package_type: deb, labels: [arm,docker ]}
57
- # - {os: debian, codename: bullseye, image_owner: arm64v8/, package_type: deb, labels: [arm64,docker ]}
131
+ # - {os: debian, codename: bullseye, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04- arm]}
132
+ # - {os: debian, codename: bullseye, image_owner: arm64v8/, package_type: deb, labels: [ubuntu-24.04-arm ]}
58
133
- {os: debian, codename: bookworm, image_owner: , package_type: deb}
59
134
# - {os: debian, codename: bookworm, image_owner: i386/, package_type: deb, labels: [i386,docker]}
60
- - {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [arm32,docker ]}
61
- - {os: debian, codename: bookworm, image_owner: arm64v8/, package_type: deb, labels: [arm64,docker ]}
135
+ - {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04-arm ]}
136
+ - {os: debian, codename: bookworm, image_owner: arm64v8/, package_type: deb, labels: [ubuntu-24.04-arm ]}
62
137
# - {os: ubuntu, codename: focal, image_owner: , package_type: deb}
63
138
# - {os: ubuntu, codename: jammy, image_owner: , package_type: deb}
64
139
- {os: ubuntu, codename: noble, image_owner: , package_type: deb}
65
- # - {os: raspbian, codename: buster, image_owner: igagis/, package_type: deb, labels: [arm,docker ]}
66
- # - {os: raspbian, codename: bullseye, image_owner: igagis/, package_type: deb, labels: [arm,docker ]}
67
- - {os: raspbian, codename: bookworm, image_owner: igagis/, package_type: deb, labels: [arm32,docker ]}
140
+ # - {os: raspbian, codename: buster, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04- arm]}
141
+ # - {os: raspbian, codename: bullseye, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04- arm]}
142
+ # - {os: raspbian, codename: bookworm, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04-arm ]}
68
143
runs-on : ${{ (matrix.labels == '' && 'ubuntu-latest') || matrix.labels }}
69
144
container : ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
70
145
name : linux - ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
@@ -84,17 +159,19 @@ jobs:
84
159
uses : myci-actions/checkout@main
85
160
- name : set PACKAGE_VERSION
86
161
uses : myci-actions/export-env-var@main
87
- with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
162
+ with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
88
163
- name : prepare debian package
89
164
run : myci-deb-prepare.sh
90
165
- name : install deps
91
166
run : myci-deb-install-build-deps.sh
92
167
- name : build
93
- run : dpkg-buildpackage --unsigned-source --unsigned-changes
168
+ run :
169
+ cd build
170
+ dpkg-buildpackage --unsigned-source --unsigned-changes
94
171
- name : deploy deb packages
95
172
run : |
96
173
echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
97
- myci-deploy-apt-ssh.sh --key repo_key_rsa --server gagis.hopto.org --repo cppfw/${{ matrix.os }} --distro ${{ matrix.codename }} --component main ../ lib${PACKAGE_NAME}*_${PACKAGE_VERSION}_*.*deb
174
+ myci-deploy-apt-ssh.sh --key repo_key_rsa --server gagis.hopto.org --repo cppfw/${{ matrix.os }} --distro ${{ matrix.codename }} --component main lib${PACKAGE_NAME}*_${PACKAGE_VERSION}_*.*deb
98
175
if : matrix.package_type == 'deb' && startsWith(github.ref, 'refs/tags/')
99
176
# #### macosx #####
100
177
macosx :
@@ -184,17 +261,17 @@ jobs:
184
261
- name : git clone
185
262
uses : myci-actions/checkout@main
186
263
- name : prepare pacman package
187
- run : myci-apply-version.sh --version $(myci-deb-version.sh debian/changelog) msys2/PKGBUILD.in
264
+ run : myci-apply-version.sh build/ msys2/PKGBUILD.in
188
265
- name : build
189
266
# to make makepkg-mingw build only one architecture we need to set the MINGW_INSTALLS
190
267
env : {MINGW_INSTALLS: '${{ matrix.repo }}'}
191
268
run : |
192
- cd msys2
269
+ cd build/ msys2
193
270
PKGEXT='.pkg.tar.xz' autojobs=true makepkg-mingw --syncdeps --noconfirm --skipinteg
194
271
- name : deploy
195
272
run : |
196
273
echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
197
- for f in $(find msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
274
+ for f in $(find build/ msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
198
275
myci-deploy-pacman-ssh.sh --server gagis.hopto.org --key repo_key_rsa --repo cppfw/msys2/${{ matrix.repo }} --database cppfw_${{ matrix.repo }} $f
199
276
done
200
277
if : startsWith(github.ref, 'refs/tags/')
0 commit comments