Skip to content

Commit 7d334a1

Browse files
committed
move build stuff to build dir
1 parent cd546bc commit 7d334a1

27 files changed

+126
-94
lines changed

.github/workflows/ci.yml

Lines changed: 42 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
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
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
56-
uses: actions/upload-artifact@v3
57+
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 }}
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: [arm,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 }}
@@ -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:
@@ -279,7 +291,7 @@ jobs:
279291
# - name: deploy
280292
# run: |
281293
# echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
282-
# 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
294+
# 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
283295
# if: startsWith(github.ref, 'refs/tags/')
284296
##### android #####
285297
# android:
@@ -300,12 +312,12 @@ jobs:
300312
# with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog)}
301313
# - name: build
302314
# run: |
303-
# cd android
315+
# cd build/android
304316
# ./gradlew copy_aar --warning-mode all
305317
# myci-apply-version.sh --version $PACKAGE_VERSION *.pom.in
306318
# myci-apply-version.sh --version $PACKAGE_VERSION *.aar.in --filename-only
307319
# - name: deploy
308-
# run: myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
320+
# run: myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android build/android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
309321
# if: startsWith(github.ref, 'refs/tags/')
310322
##### msys2 #####
311323
msys2:
@@ -347,43 +359,17 @@ jobs:
347359
- name: git clone
348360
uses: myci-actions/checkout@main
349361
- name: prepare pacman package
350-
run: myci-apply-version.sh --version $(myci-deb-version.sh debian/changelog) msys2/PKGBUILD.in
362+
run: myci-apply-version.sh build/msys2/PKGBUILD.in
351363
- name: build
352364
# to make makepkg-mingw build only one architecture we need to set the MINGW_ARCH
353365
env: {MINGW_ARCH: '${{ matrix.repo }}'}
354366
run: |
355-
cd msys2
367+
cd build/msys2
356368
PKGEXT='.pkg.tar.xz' makepkg-mingw --syncdeps --noconfirm --skipinteg
357369
- name: deploy
358370
run: |
359371
echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
360-
for f in $(find msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
372+
for f in $(find build/msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
361373
myci-deploy-pacman-ssh.sh --server gagis.hopto.org --key repo_key_rsa --repo cppfw/msys2/${{ matrix.repo }} --database cppfw_${{ matrix.repo }} $f
362374
done
363375
if: startsWith(github.ref, 'refs/tags/')
364-
##### msvs #####
365-
# msvs:
366-
# runs-on: windows-latest
367-
# defaults:
368-
# run:
369-
# shell: powershell
370-
# steps:
371-
# - name: git clone
372-
# uses: actions/checkout@v3
373-
# with: {submodules: true}
374-
# - name: install CoAPP tools
375-
# uses: myci-actions/install-coapp-tools@main
376-
# - name: nuget update
377-
# run: |
378-
# nuget restore msvs_solution/msvs_solution.sln
379-
# nuget update msvs_solution/msvs_solution.sln
380-
# - name: add msbuild to PATH
381-
# uses: microsoft/setup-msbuild@v1.1
382-
# - name: build
383-
# run: .\nuget\build_nuget.ps1
384-
# - name: deploy
385-
# uses: myci-actions/publish-nuget@main
386-
# with:
387-
# filename: '.\nuget\*.nupkg'
388-
# api-key: ${{ secrets.NUGET_DOT_ORG_API_KEY }}
389-
# if: startsWith(github.ref, 'refs/tags/')
File renamed without changes.
File renamed without changes.
Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,29 +15,45 @@ Standards-Version: 3.9.2
1515
Package: libhttpmodel$(soname)
1616
Section: libs
1717
Architecture: any
18-
Depends: ${shlibs:Depends}, ${misc:Depends}
18+
Depends:
19+
${shlibs:Depends},
20+
${misc:Depends}
1921
Description: cross-platform HTTP model C++ library.
20-
HTTP model library.
22+
HTTP model library.
23+
24+
Package: libhttpmodel-dbg$(soname)
25+
Section: libs
26+
Architecture: any
27+
Depends:
28+
${shlibs:Depends},
29+
${misc:Depends}
30+
Description: cross-platform HTTP model C++ library.
31+
Debug version of libhttpmodel.
2132

2233
Package: libhttpmodel$(soname)-dbgsrc
2334
Section: debug
2435
Architecture: all
25-
Depends: libhttpmodel$(soname)-dbgsym (= ${binary:Version}), ${misc:Depends}
36+
Depends:
37+
libhttpmodel$(soname)-dbgsym (= ${binary:Version}),
38+
libhttpmodel-dbg$(soname)-dbgsym (= ${binary:Version}),
39+
${misc:Depends}
2640
Description: debugging sources for libhttpmodel$(soname) package.
2741

2842
Package: libhttpmodel-dev
2943
Section: libdevel
3044
Architecture: any
3145
Depends:
32-
liburlmodel-dev,
33-
libhttpmodel$(soname) (= ${binary:Version}), ${misc:Depends}
46+
libhttpmodel$(soname) (= ${binary:Version}),
47+
libhttpmodel-dbg$(soname) (= ${binary:Version}),
48+
${misc:Depends},
49+
liburlmodel-dev
3450
Suggests: libhttpmodel-doc
3551
Description: cross-platform HTTP model C++ library.
36-
HTTP model library.
52+
HTTP model library.
3753

3854
Package: libhttpmodel-doc
3955
Section: doc
4056
Architecture: all
4157
Depends: ${misc:Depends}
4258
Description: documentation for libhttpmodel library.
43-
For more details see description to libhttpmodel-dev package.
59+
For more details see description to libhttpmodel-dev package.
File renamed without changes.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
usr/lib/libhttpmodel.so.*

0 commit comments

Comments
 (0)