3232 - name : add llvm repo (for clang-format)
3333 uses : myci-actions/add-deb-repo@main
3434 with :
35- repo : deb https ://apt.llvm.org/${{ env.linux_release }} llvm-toolchain-${{ env.linux_release }} main
35+ repo : deb http ://apt.llvm.org/${{ env.linux_release }} llvm-toolchain-${{ env.linux_release }} main
3636 repo-name : llvm
3737 keys-asc : https://apt.llvm.org/llvm-snapshot.gpg.key
3838 - name : git clone
@@ -51,30 +51,45 @@ jobs:
5151 - name : test
5252 run : make config=gcov test
5353 - name : generate coverage report
54- run : pipx run gcovr --exclude-throw-branches --filter src/ --cobertura > cobertura.xml
55- # - name: upload coverage report to artifacts
56- # uses: actions/upload-artifact@v4
57- # with:
58- # name: cobertura.xml
59- # path: 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
56+ - name : upload coverage report to artifacts
57+ uses : actions/upload-artifact@v4
58+ with :
59+ name : cobertura.xml
60+ 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 }}
66+ # do not search for coverage files automatically, upload only specified files
67+ disable_search : true
6568 files : cobertura.xml
6669 # flags: unittests # optional
6770 name : codecov-umbrella # optional
6871 fail_ci_if_error : true # optional (default = false)
6972 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)
7084# #### sanitizer #####
7185 sanitizer :
7286 strategy :
7387 fail-fast : false
7488 matrix :
7589 include :
76- - {os: debian, codename: bookworm, image_owner: , package_type: deb}
77- - {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [arm32,docker]}
90+ - {os: debian, codename: bookworm, image_owner: }
91+ - {os: debian, codename: bookworm, image_owner: arm32v7/, labels: [ubuntu-24.04-arm]}
92+ - {os: debian, codename: bookworm, image_owner: arm64v8/, labels: [ubuntu-24.04-arm]}
7893 runs-on : ${{ (matrix.labels == '' && 'ubuntu-latest') || matrix.labels }}
7994 container : ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
8095 name : sanitizer - ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
@@ -85,27 +100,22 @@ jobs:
85100 repo : deb https://gagis.hopto.org/repo/cppfw/${{ matrix.os }} ${{ matrix.codename }} main
86101 repo-name : cppfw
87102 keys-asc : https://gagis.hopto.org/repo/cppfw/pubkey.gpg
88- install : myci locales git
103+ install : myci git
89104 - name : add llvm repo (for clang-format)
90105 uses : myci-actions/add-deb-repo@main
91106 with :
92- repo : deb https ://apt.llvm.org/${{ matrix.codename }} llvm-toolchain-${{ matrix.codename }} main
107+ repo : deb http ://apt.llvm.org/${{ matrix.codename }} llvm-toolchain-${{ matrix.codename }} main
93108 repo-name : llvm
94109 keys-asc : https://apt.llvm.org/llvm-snapshot.gpg.key
95110 - name : install ci tools
96111 run : |
97- apt --quiet install --assume-yes devscripts equivs
112+ apt install --assume-yes devscripts equivs
98113 - name : git clone
99114 uses : myci-actions/checkout@main
100115 - name : prepare debian package
101116 run : myci-deb-prepare.sh
102117 - name : install deps
103118 run : myci-deb-install-build-deps.sh
104- - name : add DE locale
105- # needed for testing that locale with "," as decimal delimiter does not break the parsing with string_parser
106- run : |
107- echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen
108- locale-gen
109119 - name : build
110120 run : make config=asan
111121 - name : test
@@ -118,21 +128,21 @@ jobs:
118128 include :
119129 # - {os: debian, codename: buster, image_owner: , package_type: deb}
120130 # - {os: debian, codename: buster, image_owner: i386/, package_type: deb, labels: [i386,docker]}
121- # - {os: debian, codename: buster, image_owner: arm32v7/, package_type: deb, labels: [arm,docker ]}
131+ # - {os: debian, codename: buster, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04- arm]}
122132 # - {os: debian, codename: bullseye, image_owner: , package_type: deb}
123133 # - {os: debian, codename: bullseye, image_owner: i386/, package_type: deb, labels: [i386,docker]}
124- # - {os: debian, codename: bullseye, image_owner: arm32v7/, package_type: deb, labels: [arm,docker ]}
125- # - {os: debian, codename: bullseye, image_owner: arm64v8/, package_type: deb, labels: [arm64,docker ]}
134+ # - {os: debian, codename: bullseye, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04- arm]}
135+ # - {os: debian, codename: bullseye, image_owner: arm64v8/, package_type: deb, labels: [ubuntu-24.04-arm ]}
126136 - {os: debian, codename: bookworm, image_owner: , package_type: deb}
127137 # - {os: debian, codename: bookworm, image_owner: i386/, package_type: deb, labels: [i386,docker]}
128- - {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [arm32,docker ]}
129- - {os: debian, codename: bookworm, image_owner: arm64v8/, package_type: deb, labels: [arm64,docker ]}
138+ - {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04-arm ]}
139+ - {os: debian, codename: bookworm, image_owner: arm64v8/, package_type: deb, labels: [ubuntu-24.04-arm ]}
130140 # - {os: ubuntu, codename: focal, image_owner: , package_type: deb}
131141 # - {os: ubuntu, codename: jammy, image_owner: , package_type: deb}
132142 - {os: ubuntu, codename: noble, image_owner: , package_type: deb}
133- # - {os: raspbian, codename: buster, image_owner: igagis/, package_type: deb, labels: [arm,docker ]}
134- # - {os: raspbian, codename: bullseye, image_owner: igagis/, package_type: deb, labels: [arm32,docker ]}
135- - {os: raspbian, codename: bookworm, image_owner: igagis/, package_type: deb, labels: [arm32,docker ]}
143+ # - {os: raspbian, codename: buster, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04- arm]}
144+ # - {os: raspbian, codename: bullseye, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04-arm ]}
145+ # - {os: raspbian, codename: bookworm, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04-arm ]}
136146 runs-on : ${{ (matrix.labels == '' && 'ubuntu-latest') || matrix.labels }}
137147 container : ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
138148 name : linux - ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
@@ -158,7 +168,7 @@ jobs:
158168 uses : myci-actions/checkout@main
159169 - name : set PACKAGE_VERSION
160170 uses : myci-actions/export-env-var@main
161- with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
171+ with : {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
162172 - name : prepare debian package
163173 run : myci-deb-prepare.sh
164174 - name : install deps
@@ -169,7 +179,9 @@ jobs:
169179 echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen
170180 locale-gen
171181 - name : build
172- run : dpkg-buildpackage --unsigned-source --unsigned-changes
182+ run : |
183+ cd build
184+ dpkg-buildpackage --unsigned-source --unsigned-changes
173185 # - name: upload binaries to artifacts
174186 # uses: actions/upload-artifact@v3.1.2
175187 # with:
@@ -180,7 +192,7 @@ jobs:
180192 - name : deploy deb packages
181193 run : |
182194 echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
183- 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
195+ 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
184196 if : matrix.package_type == 'deb' && startsWith(github.ref, 'refs/tags/')
185197# #### macosx #####
186198 macosx :
@@ -244,7 +256,7 @@ jobs:
244256 # uses: myci-actions/checkout@main
245257 # - name: set PACKAGE_VERSION
246258 # uses: myci-actions/export-env-var@main
247- # with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
259+ # with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
248260 # - name: add cocoapods repo
249261 # run: pod repo add --silent cppfw https://$MYCI_GIT_USERNAME@github.com/cppfw/cocoapods-repo.git
250262 # - name: install deps
@@ -270,7 +282,7 @@ jobs:
270282 # - name: deploy
271283 # run: |
272284 # echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
273- # 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
285+ # 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
274286 # if: startsWith(github.ref, 'refs/tags/')
275287# #### android #####
276288 # android:
@@ -288,15 +300,15 @@ jobs:
288300 # install: myci
289301 # - name: set PACKAGE_VERSION
290302 # uses: myci-actions/export-env-var@main
291- # with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog )}
303+ # with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
292304 # - name: build
293305 # run: |
294- # cd android
306+ # cd build/ android
295307 # ./gradlew copy_aar --warning-mode all
296308 # myci-apply-version.sh --version $PACKAGE_VERSION *.pom.in
297309 # myci-apply-version.sh --version $PACKAGE_VERSION *.aar.in --filename-only
298310 # - name: deploy
299- # run: myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
311+ # run: myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android build/ android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
300312 # if: startsWith(github.ref, 'refs/tags/')
301313# #### msys2 #####
302314 msys2 :
@@ -338,43 +350,17 @@ jobs:
338350 - name : git clone
339351 uses : myci-actions/checkout@main
340352 - name : prepare pacman package
341- run : myci-apply-version.sh --version $(myci-deb-version.sh debian/changelog) msys2/PKGBUILD.in
353+ run : myci-apply-version.sh build/ msys2/PKGBUILD.in
342354 - name : build
343355 # to make makepkg-mingw build only one architecture we need to set the MINGW_ARCH
344356 env : {MINGW_ARCH: '${{ matrix.repo }}'}
345357 run : |
346- cd msys2
358+ cd build/ msys2
347359 PKGEXT='.pkg.tar.xz' makepkg-mingw --syncdeps --noconfirm --skipinteg
348360 - name : deploy
349361 run : |
350362 echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
351- for f in $(find msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
363+ for f in $(find build/ msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
352364 myci-deploy-pacman-ssh.sh --server gagis.hopto.org --key repo_key_rsa --repo cppfw/msys2/${{ matrix.repo }} --database cppfw_${{ matrix.repo }} $f
353365 done
354366 if : startsWith(github.ref, 'refs/tags/')
355- # #### msvs #####
356- # msvs:
357- # runs-on: windows-latest
358- # defaults:
359- # run:
360- # shell: powershell
361- # steps:
362- # - name: git clone
363- # uses: actions/checkout@v3
364- # with: {submodules: true}
365- # - name: install CoAPP tools
366- # uses: myci-actions/install-coapp-tools@main
367- # - name: nuget update
368- # run: |
369- # nuget restore msvs_solution/msvs_solution.sln
370- # nuget update msvs_solution/msvs_solution.sln
371- # - name: add msbuild to PATH
372- # uses: microsoft/setup-msbuild@v1.1
373- # - name: build
374- # run: .\nuget\build_nuget.ps1
375- # - name: deploy
376- # uses: myci-actions/publish-nuget@main
377- # with:
378- # filename: '.\nuget\*.nupkg'
379- # api-key: ${{ secrets.NUGET_DOT_ORG_API_KEY }}
380- # if: startsWith(github.ref, 'refs/tags/')
0 commit comments