Skip to content

Commit aa24fc5

Browse files
committed
move build stuff to build dir
1 parent c3beeb8 commit aa24fc5

29 files changed

+573
-541
lines changed

.github/workflows/ci.yml

Lines changed: 45 additions & 54 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
55-
# - name: upload coverage report to artifacts
56-
# uses: actions/upload-artifact@v3
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:
7690
- {os: debian, codename: bookworm, image_owner: , package_type: deb}
77-
- {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [arm32,docker]}
91+
- {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04-arm]}
92+
- {os: debian, codename: bookworm, image_owner: arm64v8/, package_type: deb, 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 }}
@@ -118,21 +133,21 @@ jobs:
118133
include:
119134
# - {os: debian, codename: buster, image_owner: , package_type: deb}
120135
# - {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]}
136+
# - {os: debian, codename: buster, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04-arm]}
122137
# - {os: debian, codename: bullseye, image_owner: , package_type: deb}
123138
# - {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]}
139+
# - {os: debian, codename: bullseye, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04-arm]}
140+
# - {os: debian, codename: bullseye, image_owner: arm64v8/, package_type: deb, labels: [ubuntu-24.04-arm]}
126141
- {os: debian, codename: bookworm, image_owner: , package_type: deb}
127142
# - {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]}
143+
- {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04-arm]}
144+
- {os: debian, codename: bookworm, image_owner: arm64v8/, package_type: deb, labels: [ubuntu-24.04-arm]}
130145
# - {os: ubuntu, codename: focal, image_owner: , package_type: deb}
131146
# - {os: ubuntu, codename: jammy, image_owner: , package_type: deb}
132147
- {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]}
148+
# - {os: raspbian, codename: buster, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04-arm]}
149+
# - {os: raspbian, codename: bullseye, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04-arm]}
150+
# - {os: raspbian, codename: bookworm, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04-arm]}
136151
runs-on: ${{ (matrix.labels == '' && 'ubuntu-latest') || matrix.labels }}
137152
container: ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
138153
name: linux - ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
@@ -158,7 +173,7 @@ jobs:
158173
uses: myci-actions/checkout@main
159174
- name: set PACKAGE_VERSION
160175
uses: myci-actions/export-env-var@main
161-
with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog)}
176+
with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
162177
- name: prepare debian package
163178
run: myci-deb-prepare.sh
164179
- name: install deps
@@ -169,7 +184,9 @@ jobs:
169184
echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen
170185
locale-gen
171186
- name: build
172-
run: dpkg-buildpackage --unsigned-source --unsigned-changes
187+
run: |
188+
cd build
189+
dpkg-buildpackage --unsigned-source --unsigned-changes
173190
# - name: upload binaries to artifacts
174191
# uses: actions/upload-artifact@v3.1.2
175192
# with:
@@ -180,7 +197,7 @@ jobs:
180197
- name: deploy deb packages
181198
run: |
182199
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
200+
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
184201
if: matrix.package_type == 'deb' && startsWith(github.ref, 'refs/tags/')
185202
##### macosx #####
186203
macosx:
@@ -253,7 +270,7 @@ jobs:
253270
# uses: myci-actions/checkout@main
254271
# - name: set PACKAGE_VERSION
255272
# uses: myci-actions/export-env-var@main
256-
# with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog)}
273+
# with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
257274
# - name: add cocoapods repo
258275
# run: pod repo add --silent cppfw https://$MYCI_GIT_USERNAME@github.com/cppfw/cocoapods-repo.git
259276
# - name: install deps
@@ -279,7 +296,7 @@ jobs:
279296
# - name: deploy
280297
# run: |
281298
# 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
299+
# 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
283300
# if: startsWith(github.ref, 'refs/tags/')
284301
##### android #####
285302
# android:
@@ -297,15 +314,15 @@ jobs:
297314
# install: myci
298315
# - name: set PACKAGE_VERSION
299316
# uses: myci-actions/export-env-var@main
300-
# with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog)}
317+
# with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
301318
# - name: build
302319
# run: |
303-
# cd android
320+
# cd build/android
304321
# ./gradlew copy_aar --warning-mode all
305322
# myci-apply-version.sh --version $PACKAGE_VERSION *.pom.in
306323
# myci-apply-version.sh --version $PACKAGE_VERSION *.aar.in --filename-only
307324
# - name: deploy
308-
# run: myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
325+
# run: myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android build/android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
309326
# if: startsWith(github.ref, 'refs/tags/')
310327
##### msys2 #####
311328
msys2:
@@ -347,43 +364,17 @@ jobs:
347364
- name: git clone
348365
uses: myci-actions/checkout@main
349366
- name: prepare pacman package
350-
run: myci-apply-version.sh --version $(myci-deb-version.sh debian/changelog) msys2/PKGBUILD.in
367+
run: myci-apply-version.sh build/msys2/PKGBUILD.in
351368
- name: build
352369
# to make makepkg-mingw build only one architecture we need to set the MINGW_ARCH
353370
env: {MINGW_ARCH: '${{ matrix.repo }}'}
354371
run: |
355-
cd msys2
372+
cd build/msys2
356373
PKGEXT='.pkg.tar.xz' makepkg-mingw --syncdeps --noconfirm --skipinteg
357374
- name: deploy
358375
run: |
359376
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
377+
for f in $(find build/msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
361378
myci-deploy-pacman-ssh.sh --server gagis.hopto.org --key repo_key_rsa --repo cppfw/msys2/${{ matrix.repo }} --database cppfw_${{ matrix.repo }} $f
362379
done
363380
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: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,56 @@ Section: libs
33
Priority: extra
44
Maintainer: Ivan Gagis <igagis@gmail.com>
55
Build-Depends: debhelper (>= 9), prorab, prorab-extra,
6-
libc6-dev,
7-
libutki-dev,
8-
libtst-dev,
9-
clang-format,
10-
clang-tidy
6+
libc6-dev,
7+
libutki-dev,
8+
libtst-dev,
9+
clang-format,
10+
clang-tidy
1111
Build-Depends-Indep: doxygen
1212
Standards-Version: 3.9.2
1313

1414
Package: liburlmodel$(soname)
1515
Section: libs
1616
Architecture: any
17-
Depends: ${shlibs:Depends}, ${misc:Depends}
17+
Depends:
18+
${shlibs:Depends},
19+
${misc:Depends}
1820
Description: cross-platform URL model C++ library.
19-
URL model library.
21+
URL model library.
22+
23+
Package: liburlmodel-dbg$(soname)
24+
Section: libs
25+
Architecture: any
26+
Depends:
27+
${shlibs:Depends},
28+
${misc:Depends}
29+
Description: cross-platform URL model C++ library.
30+
Debug version of liburlmodel.
2031

2132
Package: liburlmodel$(soname)-dbgsrc
2233
Section: debug
2334
Architecture: all
24-
Depends: liburlmodel$(soname)-dbgsym (= ${binary:Version}), ${misc:Depends}
35+
Depends:
36+
liburlmodel$(soname)-dbgsym (= ${binary:Version}),
37+
liburlmodel-dbg$(soname)-dbgsym (= ${binary:Version}),
38+
${misc:Depends}
2539
Description: debugging sources for liburlmodel$(soname) package.
2640

2741
Package: liburlmodel-dev
2842
Section: libdevel
2943
Architecture: any
3044
Depends:
31-
libutki-dev,
32-
liburlmodel$(soname) (= ${binary:Version}), ${misc:Depends}
45+
liburlmodel$(soname) (= ${binary:Version}),
46+
liburlmodel-dbg$(soname) (= ${binary:Version}),
47+
${misc:Depends},
48+
libutki-dev
3349
Suggests: liburlmodel-doc
3450
Description: cross-platform URL model C++ library.
35-
URL model library.
51+
URL model library.
3652

3753
Package: liburlmodel-doc
3854
Section: doc
3955
Architecture: all
4056
Depends: ${misc:Depends}
4157
Description: documentation for liburlmodel library.
42-
For more details see description to liburlmodel-dev package.
58+
For more details see description to liburlmodel-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/liburlmodel.so.*

0 commit comments

Comments
 (0)