@@ -25,19 +25,19 @@ jobs:
25
25
linux_distro : debian
26
26
linux_release : bookworm
27
27
steps :
28
- - name : add llvm repo (for clang-format)
29
- uses : myci-actions/add-deb-repo@main
30
- with :
31
- repo : deb https://apt.llvm.org/${{ env.linux_release }} llvm-toolchain-${{ env.linux_release }} main
32
- repo-name : llvm
33
- keys-asc : https://apt.llvm.org/llvm-snapshot.gpg.key
34
28
- name : add cppfw deb repo
35
29
uses : myci-actions/add-deb-repo@main
36
30
with :
37
31
repo : deb https://gagis.hopto.org/repo/cppfw/${{ env.linux_distro }} ${{ env.linux_release }} main
38
32
repo-name : cppfw
39
33
keys-asc : https://gagis.hopto.org/repo/cppfw/pubkey.gpg
40
34
install : myci locales git pipx
35
+ - name : add llvm repo (for clang-format)
36
+ uses : myci-actions/add-deb-repo@main
37
+ with :
38
+ repo : deb http://apt.llvm.org/${{ env.linux_release }} llvm-toolchain-${{ env.linux_release }} main
39
+ repo-name : llvm
40
+ keys-asc : https://apt.llvm.org/llvm-snapshot.gpg.key
41
41
- name : git clone
42
42
uses : myci-actions/checkout@main
43
43
- name : prepare debian package
@@ -54,30 +54,45 @@ jobs:
54
54
- name : test
55
55
run : make config=gcov test
56
56
- name : generate coverage report
57
- run : pipx run gcovr --gcov-ignore-parse-errors --exclude-throw-branches --filter src/ --cobertura > cobertura.xml
57
+ # due to some bug in gcov, we need to use --gcov-ignore-parse-errors=negative_hits.warn
58
+ run : pipx run gcovr --gcov-ignore-parse-errors=negative_hits.warn --exclude-throw-branches --filter src/ --cobertura > cobertura.xml
58
59
- name : upload coverage report to artifacts
59
60
uses : actions/upload-artifact@v4
60
61
with :
61
62
name : cobertura.xml
62
63
path : cobertura.xml
63
64
- name : upload coverage data to codecov.io
64
- uses : codecov/codecov-action@v4
65
+ uses : codecov/codecov-action@v5
65
66
if : always() # even if previous steps fail, this one needs to be run
66
67
with :
67
68
token : ${{ secrets.CODECOV_TOKEN }}
69
+ # do not search for coverage files automatically, upload only specified files
70
+ disable_search : true
68
71
files : cobertura.xml
69
72
# flags: unittests # optional
70
73
name : codecov-umbrella # optional
71
74
fail_ci_if_error : true # optional (default = false)
72
75
verbose : true # optional (default = false)
76
+ - name : upload test report to codecov.io
77
+ if : always() # even if previous steps fail, this one needs to be run
78
+ uses : codecov/test-results-action@v1
79
+ with :
80
+ token : ${{ secrets.CODECOV_TOKEN }}
81
+ # do not search for coverage files automatically, upload only specified files
82
+ disable_search : true
83
+ files : tests/unit/out/gcov/junit.xml
84
+ name : codecov-umbrella # optional
85
+ fail_ci_if_error : true # optional (default = false)
86
+ verbose : true # optional (default = false)
73
87
# #### sanitizer #####
74
88
sanitizer :
75
89
strategy :
76
90
fail-fast : false
77
91
matrix :
78
92
include :
79
- - {os: debian, codename: bookworm, image_owner: , package_type: deb}
80
- - {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [arm32,docker]}
93
+ - {os: debian, codename: bookworm, image_owner: }
94
+ - {os: debian, codename: bookworm, image_owner: arm32v7/, labels: [ubuntu-24.04-arm]}
95
+ - {os: debian, codename: bookworm, image_owner: arm64v8/, labels: [ubuntu-24.04-arm]}
81
96
runs-on : ${{ (matrix.labels == '' && 'ubuntu-latest') || matrix.labels }}
82
97
container : ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
83
98
name : sanitizer - ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
@@ -88,27 +103,22 @@ jobs:
88
103
repo : deb https://gagis.hopto.org/repo/cppfw/${{ matrix.os }} ${{ matrix.codename }} main
89
104
repo-name : cppfw
90
105
keys-asc : https://gagis.hopto.org/repo/cppfw/pubkey.gpg
91
- install : myci locales git
106
+ install : myci git
92
107
- name : add llvm repo (for clang-format)
93
108
uses : myci-actions/add-deb-repo@main
94
109
with :
95
- repo : deb https ://apt.llvm.org/${{ matrix.codename }} llvm-toolchain-${{ matrix.codename }} main
110
+ repo : deb http ://apt.llvm.org/${{ matrix.codename }} llvm-toolchain-${{ matrix.codename }} main
96
111
repo-name : llvm
97
112
keys-asc : https://apt.llvm.org/llvm-snapshot.gpg.key
98
113
- name : install ci tools
99
114
run : |
100
- apt --quiet install --assume-yes devscripts equivs
115
+ apt install --assume-yes devscripts equivs
101
116
- name : git clone
102
117
uses : myci-actions/checkout@main
103
118
- name : prepare debian package
104
119
run : myci-deb-prepare.sh
105
120
- name : install deps
106
121
run : myci-deb-install-build-deps.sh
107
- - name : add DE locale
108
- # needed for testing that locale with "," as decimal delimiter does not break the parsing with string_parser
109
- run : |
110
- echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen
111
- locale-gen
112
122
- name : build
113
123
run : make config=asan
114
124
- name : test
@@ -121,21 +131,21 @@ jobs:
121
131
include :
122
132
# - {os: debian, codename: buster, image_owner: , package_type: deb}
123
133
# - {os: debian, codename: buster, image_owner: i386/, package_type: deb, labels: [i386,docker]}
124
- # - {os: debian, codename: buster, image_owner: arm32v7/, package_type: deb, labels: [arm,docker ]}
134
+ # - {os: debian, codename: buster, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04- arm]}
125
135
# - {os: debian, codename: bullseye, image_owner: , package_type: deb}
126
136
# - {os: debian, codename: bullseye, image_owner: i386/, package_type: deb, labels: [i386,docker]}
127
- # - {os: debian, codename: bullseye, image_owner: arm32v7/, package_type: deb, labels: [arm,docker ]}
128
- # - {os: debian, codename: bullseye, image_owner: arm64v8/, package_type: deb, labels: [arm64,docker ]}
137
+ # - {os: debian, codename: bullseye, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04- arm]}
138
+ # - {os: debian, codename: bullseye, image_owner: arm64v8/, package_type: deb, labels: [ubuntu-24.04-arm ]}
129
139
- {os: debian, codename: bookworm, image_owner: , package_type: deb}
130
140
# - {os: debian, codename: bookworm, image_owner: i386/, package_type: deb, labels: [i386,docker]}
131
- - {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [arm,docker ]}
132
- - {os: debian, codename: bookworm, image_owner: arm64v8/, package_type: deb, labels: [arm64,docker ]}
141
+ - {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04- arm]}
142
+ - {os: debian, codename: bookworm, image_owner: arm64v8/, package_type: deb, labels: [ubuntu-24.04-arm ]}
133
143
# - {os: ubuntu, codename: focal, image_owner: , package_type: deb}
134
144
# - {os: ubuntu, codename: jammy, image_owner: , package_type: deb}
135
145
- {os: ubuntu, codename: noble, image_owner: , package_type: deb}
136
- # - {os: raspbian, codename: buster, image_owner: igagis/, package_type: deb, labels: [arm,docker ]}
137
- # - {os: raspbian, codename: bullseye, image_owner: igagis/, package_type: deb, labels: [arm,docker ]}
138
- - {os: raspbian, codename: bookworm, image_owner: igagis/, package_type: deb, labels: [arm,docker ]}
146
+ # - {os: raspbian, codename: buster, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04- arm]}
147
+ # - {os: raspbian, codename: bullseye, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04- arm]}
148
+ # - {os: raspbian, codename: bookworm, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04- arm]}
139
149
runs-on : ${{ (matrix.labels == '' && 'ubuntu-latest') || matrix.labels }}
140
150
container : ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
141
151
name : linux - ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
@@ -161,7 +171,7 @@ jobs:
161
171
uses : myci-actions/checkout@main
162
172
- name : set PACKAGE_VERSION
163
173
uses : myci-actions/export-env-var@main
164
- with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
174
+ with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
165
175
- name : prepare debian package
166
176
run : myci-deb-prepare.sh
167
177
- name : install deps
@@ -172,7 +182,9 @@ jobs:
172
182
echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen
173
183
locale-gen
174
184
- name : build
175
- run : dpkg-buildpackage --unsigned-source --unsigned-changes
185
+ run : |
186
+ cd build
187
+ dpkg-buildpackage --unsigned-source --unsigned-changes
176
188
# - name: upload binaries to artifacts
177
189
# uses: actions/upload-artifact@v3.1.2
178
190
# with:
@@ -183,7 +195,7 @@ jobs:
183
195
- name : deploy deb packages
184
196
run : |
185
197
echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
186
- 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
198
+ 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
187
199
if : matrix.package_type == 'deb' && startsWith(github.ref, 'refs/tags/')
188
200
# #### macosx #####
189
201
macosx :
@@ -247,7 +259,7 @@ jobs:
247
259
# uses: myci-actions/checkout@main
248
260
# - name: set PACKAGE_VERSION
249
261
# uses: myci-actions/export-env-var@main
250
- # with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
262
+ # with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
251
263
# - name: add cocoapods repo
252
264
# run: pod repo add --silent cppfw https://$MYCI_GIT_USERNAME@github.com/cppfw/cocoapods-repo.git
253
265
# - name: install deps
@@ -273,7 +285,7 @@ jobs:
273
285
# - name: deploy
274
286
# run: |
275
287
# echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
276
- # myci-deploy-cocoapods-ssh.sh --repo cppfw --version $PACKAGE_VERSION --server gagis.hopto.org --key repo_key_rsa --generic-repo cppfw/cocoapods --package $PACKAGE_NAME-$PACKAGE_VERSION.zip cocoapods/$PACKAGE_NAME.podspec.in
288
+ # myci-deploy-cocoapods-ssh.sh --repo cppfw --version $PACKAGE_VERSION --server gagis.hopto.org --key repo_key_rsa --generic-repo cppfw/cocoapods --package $PACKAGE_NAME-$PACKAGE_VERSION.zip build/ cocoapods/$PACKAGE_NAME.podspec.in
277
289
# if: startsWith(github.ref, 'refs/tags/')
278
290
# #### android #####
279
291
# android:
@@ -291,15 +303,15 @@ jobs:
291
303
# install: myci
292
304
# - name: set PACKAGE_VERSION
293
305
# uses: myci-actions/export-env-var@main
294
- # with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
306
+ # with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
295
307
# - name: build
296
308
# run: |
297
- # cd android
309
+ # cd build/ android
298
310
# ./gradlew copy_aar --warning-mode all
299
311
# myci-apply-version.sh --version $PACKAGE_VERSION *.pom.in
300
312
# myci-apply-version.sh --version $PACKAGE_VERSION *.aar.in --filename-only
301
313
# - name: deploy
302
- # run: myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
314
+ # run: myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android build/ android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
303
315
# if: startsWith(github.ref, 'refs/tags/')
304
316
# #### msys2 #####
305
317
msys2 :
@@ -341,43 +353,17 @@ jobs:
341
353
- name : git clone
342
354
uses : myci-actions/checkout@main
343
355
- name : prepare pacman package
344
- run : myci-apply-version.sh --version $(myci-deb-version.sh debian/changelog) msys2/PKGBUILD.in
356
+ run : myci-apply-version.sh build/ msys2/PKGBUILD.in
345
357
- name : build
346
358
# to make makepkg-mingw build only one architecture we need to set the MINGW_ARCH
347
359
env : {MINGW_ARCH: '${{ matrix.repo }}'}
348
360
run : |
349
- cd msys2
361
+ cd build/ msys2
350
362
PKGEXT='.pkg.tar.xz' makepkg-mingw --syncdeps --noconfirm --skipinteg
351
363
- name : deploy
352
364
run : |
353
365
echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
354
- for f in $(find msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
366
+ for f in $(find build/ msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
355
367
myci-deploy-pacman-ssh.sh --server gagis.hopto.org --key repo_key_rsa --repo cppfw/msys2/${{ matrix.repo }} --database cppfw_${{ matrix.repo }} $f
356
368
done
357
369
if : startsWith(github.ref, 'refs/tags/')
358
- # #### msvs #####
359
- # msvs:
360
- # runs-on: windows-latest
361
- # defaults:
362
- # run:
363
- # shell: powershell
364
- # steps:
365
- # - name: git clone
366
- # uses: actions/checkout@v3
367
- # with: {submodules: true}
368
- # - name: install CoAPP tools
369
- # uses: myci-actions/install-coapp-tools@main
370
- # - name: nuget update
371
- # run: |
372
- # nuget restore msvs_solution/msvs_solution.sln
373
- # nuget update msvs_solution/msvs_solution.sln
374
- # - name: add msbuild to PATH
375
- # uses: microsoft/setup-msbuild@v1.1
376
- # - name: build
377
- # run: .\nuget\build_nuget.ps1
378
- # - name: deploy
379
- # uses: myci-actions/publish-nuget@main
380
- # with:
381
- # filename: '.\nuget\*.nupkg'
382
- # api-key: ${{ secrets.NUGET_DOT_ORG_API_KEY }}
383
- # if: startsWith(github.ref, 'refs/tags/')
0 commit comments