Skip to content

Commit 553f03c

Browse files
committed
move build stuff to build dir
1 parent e05e26a commit 553f03c

25 files changed

+174
-126
lines changed

.github/workflows/ci.yml

Lines changed: 49 additions & 63 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@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/')

README.adoc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
:name: tcpserver
2+
3+
= {name}
4+
5+
|====
6+
| link:https://github.com/cppfw/{name}/releases[image:https://img.shields.io/github/tag/cppfw/{name}.svg[releases]] | link:https://github.com/cppfw/{name}/actions[image:https://github.com/cppfw/{name}/workflows/ci/badge.svg[ci status]] | link:https://codecov.io/gh/cppfw/{name}[image:https://codecov.io/gh/cppfw/{name}/branch/main/graph/badge.svg?token=LKA3SRSkc3[codecov.io]]
7+
|====
8+
9+
TCP server C++ library.
File renamed without changes.
File renamed without changes.

debian/control.in renamed to build/debian/control.in

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,46 @@ Standards-Version: 3.9.2
1515
Package: libtcpserver$(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 TCP server C++ library.
20-
TCP server library.
22+
TCP server library.
23+
24+
Package: libtcpserver-dbg$(soname)
25+
Section: libs
26+
Architecture: any
27+
Depends:
28+
${shlibs:Depends},
29+
${misc:Depends}
30+
Description: cross-platform TCP server C++ library.
31+
Debug version of libtcpserver.
2132

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

2842
Package: libtcpserver-dev
2943
Section: libdevel
3044
Architecture: any
3145
Depends:
46+
libtcpserver$(soname) (= ${binary:Version}),
47+
libtcpserver-dbg$(soname) (= ${binary:Version}),
48+
${misc:Depends},
3249
libnitki-dev,
33-
libsetka-dev,
34-
libtcpserver$(soname) (= ${binary:Version}), ${misc:Depends}
50+
libsetka-dev
3551
Suggests: libtcpserver-doc
3652
Description: cross-platform TCP server C++ library.
37-
TCP server library.
53+
TCP server library.
3854

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

0 commit comments

Comments
 (0)