@@ -51,14 +51,15 @@ jobs:
5151 - name : test
5252 run : make config=gcov test
5353 - name : generate coverage report
54- run : pipx run gcovr --gcov-ignore-parse-errors --exclude-throw-branches --filter src/ --cobertura > cobertura.xml
54+ # due to some bug in gcov, we need to use --gcov-ignore-parse-errors=negative_hits.warn
55+ run : pipx run gcovr --gcov-ignore-parse-errors=negative_hits.warn --exclude-throw-branches --filter src/ --cobertura > cobertura.xml
5556 - name : upload coverage report to artifacts
5657 uses : actions/upload-artifact@v4
5758 with :
5859 name : cobertura.xml
5960 path : cobertura.xml
6061 - name : upload coverage data to codecov.io
61- uses : codecov/codecov-action@v4
62+ uses : codecov/codecov-action@v5
6263 if : always() # even if previous steps fail, this one needs to be run
6364 with :
6465 token : ${{ secrets.CODECOV_TOKEN }}
6970 name : codecov-umbrella # optional
7071 fail_ci_if_error : true # optional (default = false)
7172 verbose : true # optional (default = false)
73+ - name : upload test report to codecov.io
74+ if : always() # even if previous steps fail, this one needs to be run
75+ uses : codecov/test-results-action@v1
76+ with :
77+ token : ${{ secrets.CODECOV_TOKEN }}
78+ # do not search for coverage files automatically, upload only specified files
79+ disable_search : true
80+ files : tests/unit/out/gcov/junit.xml
81+ name : codecov-umbrella # optional
82+ fail_ci_if_error : true # optional (default = false)
83+ verbose : true # optional (default = false)
7284# #### sanitizer #####
7385 sanitizer :
7486 strategy :
@@ -161,7 +173,7 @@ jobs:
161173 uses : myci-actions/checkout@main
162174 - name : set PACKAGE_VERSION
163175 uses : myci-actions/export-env-var@main
164- with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
176+ with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
165177 - name : prepare debian package
166178 run : myci-deb-prepare.sh
167179 - name : install deps
@@ -172,11 +184,13 @@ jobs:
172184 echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen
173185 locale-gen
174186 - name : build
175- run : dpkg-buildpackage --unsigned-source --unsigned-changes
187+ run : |
188+ cd build
189+ dpkg-buildpackage --unsigned-source --unsigned-changes
176190 - name : deploy deb packages
177191 run : |
178192 echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
179- 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
193+ 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
180194 if : startsWith(github.ref, 'refs/tags/')
181195# #### archlinux #####
182196 # archlinux:
@@ -206,7 +220,7 @@ jobs:
206220 # uses: myci-actions/checkout@main
207221 # - name: set PACKAGE_VERSION
208222 # uses: myci-actions/export-env-var@main
209- # with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
223+ # with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
210224 # # makepkg needs to install dependency packages, so nobody user needs sudo rights
211225 # - name: add nobody to sudoers
212226 # run: |
@@ -215,12 +229,12 @@ jobs:
215229 # run: |
216230 # # provide write access to user nobody
217231 # chmod --recursive 777 .
218- # cd archlinux
232+ # cd build/ archlinux
219233 # sudo --user=nobody --preserve-env=PACKAGE_VERSION makepkg --syncdeps --noconfirm --skipinteg --noprogressbar
220234 # - name: deploy
221235 # run: |
222236 # echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
223- # myci-deploy-pacman-ssh.sh --server gagis.hopto.org --key repo_key_rsa --repo cppfw/archlinux/${{ matrix.arch }} --database cppfw archlinux/$PACKAGE_NAME-*.pkg.*
237+ # myci-deploy-pacman-ssh.sh --server gagis.hopto.org --key repo_key_rsa --repo cppfw/archlinux/${{ matrix.arch }} --database cppfw build/ archlinux/$PACKAGE_NAME-*.pkg.*
224238 # if: startsWith(github.ref, 'refs/tags/')
225239# #### macosx #####
226240 macosx :
@@ -293,7 +307,7 @@ jobs:
293307 uses : myci-actions/checkout@main
294308 - name : set PACKAGE_VERSION
295309 uses : myci-actions/export-env-var@main
296- with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
310+ with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
297311 - name : add cocoapods repo
298312 run : pod repo add --silent cppfw https://$MYCI_GIT_USERNAME@github.com/cppfw/cocoapods-repo.git
299313 - name : install deps
@@ -314,7 +328,7 @@ jobs:
314328 - name : deploy
315329 run : |
316330 echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
317- 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
331+ 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
318332 if : startsWith(github.ref, 'refs/tags/')
319333# #### android #####
320334 android :
@@ -332,15 +346,15 @@ jobs:
332346 install : myci
333347 - name : set PACKAGE_VERSION
334348 uses : myci-actions/export-env-var@main
335- with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
349+ with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
336350 - name : build
337351 run : |
338- cd android
352+ cd build/ android
339353 ./gradlew copy_aar --warning-mode all
340354 myci-apply-version.sh --version $PACKAGE_VERSION *.pom.in
341355 myci-apply-version.sh --version $PACKAGE_VERSION *.aar.in --filename-only
342356 - name : deploy
343- run : myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
357+ run : myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android build/ android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
344358 if : startsWith(github.ref, 'refs/tags/')
345359# #### msys2 #####
346360 msys2 :
@@ -382,17 +396,17 @@ jobs:
382396 - name : git clone
383397 uses : myci-actions/checkout@main
384398 - name : prepare pacman package
385- run : myci-apply-version.sh --version $(myci-deb-version.sh debian/changelog) msys2/PKGBUILD.in
399+ run : myci-apply-version.sh build/ msys2/PKGBUILD.in
386400 - name : build
387401 # to make makepkg-mingw build only one architecture we need to set the MINGW_ARCH
388402 env : {MINGW_ARCH: '${{ matrix.repo }}'}
389403 run : |
390- cd msys2
404+ cd build/ msys2
391405 PKGEXT='.pkg.tar.xz' makepkg-mingw --syncdeps --noconfirm --skipinteg
392406 - name : deploy
393407 run : |
394408 echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
395- for f in $(find msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
409+ for f in $(find build/ msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
396410 myci-deploy-pacman-ssh.sh --server gagis.hopto.org --key repo_key_rsa --repo cppfw/msys2/${{ matrix.repo }} --database cppfw_${{ matrix.repo }} $f
397411 done
398412 if : startsWith(github.ref, 'refs/tags/')
@@ -556,12 +570,12 @@ jobs:
556570 uses : myci-actions/checkout@main
557571 - name : set PACKAGE_VERSION
558572 uses : myci-actions/export-env-var@main
559- with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
573+ with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
560574 if : startsWith(github.ref, 'refs/tags/')
561575 - name : build
562576 run : |
563577 conan remote add cppfw $MYCI_CONAN_REMOTE
564- conan create conan --build=missing --user $MYCI_CONAN_USER --channel main --version $PACKAGE_VERSION
578+ conan create build/ conan --build=missing --user $MYCI_CONAN_USER --channel main --version $PACKAGE_VERSION
565579 - name : deploy conan package
566580 run : |
567581 conan remote login --password $MYCI_CONAN_PASSWORD cppfw $MYCI_CONAN_USER
@@ -609,12 +623,12 @@ jobs:
609623 sed -i -E "s/compiler.cppstd=.*$/compiler.cppstd=17/g" ~/.conan2/profiles/default
610624 - name : set PACKAGE_VERSION
611625 uses : myci-actions/export-env-var@main
612- with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
626+ with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
613627 if : startsWith(github.ref, 'refs/tags/')
614628 - name : build
615629 run : |
616630 conan remote add cppfw $MYCI_CONAN_REMOTE
617- conan create conan --build=missing --user $MYCI_CONAN_USER --channel main --version $PACKAGE_VERSION
631+ conan create build/ conan --build=missing --user $MYCI_CONAN_USER --channel main --version $PACKAGE_VERSION
618632 - name : deploy conan package
619633 run : |
620634 conan remote login --password $MYCI_CONAN_PASSWORD cppfw $MYCI_CONAN_USER
@@ -654,13 +668,13 @@ jobs:
654668 submodules : false
655669 - name : set PACKAGE_VERSION
656670 uses : myci-actions/export-env-var@main
657- with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
671+ with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
658672 if : startsWith(github.ref, 'refs/tags/')
659673 - name : build
660674 run : |
661675 conan remote add cppfw $MYCI_CONAN_REMOTE
662676 # NOTE: specifying empty test folder to skip the test stage
663- conan create conan --profile:build default --profile:host emscripten/conan.profile --build=missing --user $MYCI_CONAN_USER --channel main --version $PACKAGE_VERSION --test-folder ""
677+ conan create build/ conan --profile:build default --profile:host build/ emscripten/conan.profile --build=missing --user $MYCI_CONAN_USER --channel main --version $PACKAGE_VERSION --test-folder ""
664678 - name : deploy conan package
665679 run : |
666680 conan remote login --password $MYCI_CONAN_PASSWORD cppfw $MYCI_CONAN_USER
0 commit comments