Skip to content

Commit 3a5f9ed

Browse files
committed
move build stuff to build dir
1 parent a2bf2a4 commit 3a5f9ed

25 files changed

+150
-106
lines changed

.github/workflows/ci.yml

Lines changed: 49 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,19 @@ jobs:
2525
linux_distro: debian
2626
linux_release: bookworm
2727
steps:
28-
- name: add llvm repo (for clang-format)
29-
uses: myci-actions/add-deb-repo@main
30-
with:
31-
repo: deb https://apt.llvm.org/${{ env.linux_release }} llvm-toolchain-${{ env.linux_release }} main
32-
repo-name: llvm
33-
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
3428
- name: add cppfw deb repo
3529
uses: myci-actions/add-deb-repo@main
3630
with:
3731
repo: deb https://gagis.hopto.org/repo/cppfw/${{ env.linux_distro }} ${{ env.linux_release }} main
3832
repo-name: cppfw
3933
keys-asc: https://gagis.hopto.org/repo/cppfw/pubkey.gpg
4034
install: myci locales git pipx
35+
- name: add llvm repo (for clang-format)
36+
uses: myci-actions/add-deb-repo@main
37+
with:
38+
repo: deb http://apt.llvm.org/${{ env.linux_release }} llvm-toolchain-${{ env.linux_release }} main
39+
repo-name: llvm
40+
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
4141
- name: git clone
4242
uses: myci-actions/checkout@main
4343
- name: prepare debian package
@@ -54,30 +54,45 @@ jobs:
5454
- name: test
5555
run: make config=gcov test
5656
- name: generate coverage report
57-
run: pipx run gcovr --gcov-ignore-parse-errors --exclude-throw-branches --filter src/ --cobertura > cobertura.xml
57+
# due to some bug in gcov, we need to use --gcov-ignore-parse-errors=negative_hits.warn
58+
run: pipx run gcovr --gcov-ignore-parse-errors=negative_hits.warn --exclude-throw-branches --filter src/ --cobertura > cobertura.xml
5859
- name: upload coverage report to artifacts
5960
uses: actions/upload-artifact@v4
6061
with:
6162
name: cobertura.xml
6263
path: cobertura.xml
6364
- name: upload coverage data to codecov.io
64-
uses: codecov/codecov-action@v4
65+
uses: codecov/codecov-action@v5
6566
if: always() # even if previous steps fail, this one needs to be run
6667
with:
6768
token: ${{ secrets.CODECOV_TOKEN }}
69+
# do not search for coverage files automatically, upload only specified files
70+
disable_search: true
6871
files: cobertura.xml
6972
# flags: unittests # optional
7073
name: codecov-umbrella # optional
7174
fail_ci_if_error: true # optional (default = false)
7275
verbose: true # optional (default = false)
76+
- name: upload test report to codecov.io
77+
if: always() # even if previous steps fail, this one needs to be run
78+
uses: codecov/test-results-action@v1
79+
with:
80+
token: ${{ secrets.CODECOV_TOKEN }}
81+
# do not search for coverage files automatically, upload only specified files
82+
disable_search: true
83+
files: tests/unit/out/gcov/junit.xml
84+
name: codecov-umbrella # optional
85+
fail_ci_if_error: true # optional (default = false)
86+
verbose: true # optional (default = false)
7387
##### sanitizer #####
7488
sanitizer:
7589
strategy:
7690
fail-fast: false
7791
matrix:
7892
include:
79-
- {os: debian, codename: bookworm, image_owner: , package_type: deb}
80-
- {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [arm32,docker]}
93+
- {os: debian, codename: bookworm, image_owner: }
94+
- {os: debian, codename: bookworm, image_owner: arm32v7/, labels: [ubuntu-24.04-arm]}
95+
- {os: debian, codename: bookworm, image_owner: arm64v8/, labels: [ubuntu-24.04-arm]}
8196
runs-on: ${{ (matrix.labels == '' && 'ubuntu-latest') || matrix.labels }}
8297
container: ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
8398
name: sanitizer - ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
@@ -88,27 +103,22 @@ jobs:
88103
repo: deb https://gagis.hopto.org/repo/cppfw/${{ matrix.os }} ${{ matrix.codename }} main
89104
repo-name: cppfw
90105
keys-asc: https://gagis.hopto.org/repo/cppfw/pubkey.gpg
91-
install: myci locales git
106+
install: myci git
92107
- name: add llvm repo (for clang-format)
93108
uses: myci-actions/add-deb-repo@main
94109
with:
95-
repo: deb https://apt.llvm.org/${{ matrix.codename }} llvm-toolchain-${{ matrix.codename }} main
110+
repo: deb http://apt.llvm.org/${{ matrix.codename }} llvm-toolchain-${{ matrix.codename }} main
96111
repo-name: llvm
97112
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
98113
- name: install ci tools
99114
run: |
100-
apt --quiet install --assume-yes devscripts equivs
115+
apt install --assume-yes devscripts equivs
101116
- name: git clone
102117
uses: myci-actions/checkout@main
103118
- name: prepare debian package
104119
run: myci-deb-prepare.sh
105120
- name: install deps
106121
run: myci-deb-install-build-deps.sh
107-
- name: add DE locale
108-
# needed for testing that locale with "," as decimal delimiter does not break the parsing with string_parser
109-
run: |
110-
echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen
111-
locale-gen
112122
- name: build
113123
run: make config=asan
114124
- name: test
@@ -121,21 +131,21 @@ jobs:
121131
include:
122132
# - {os: debian, codename: buster, image_owner: , package_type: deb}
123133
# - {os: debian, codename: buster, image_owner: i386/, package_type: deb, labels: [i386,docker]}
124-
# - {os: debian, codename: buster, image_owner: arm32v7/, package_type: deb, labels: [arm,docker]}
134+
# - {os: debian, codename: buster, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04-arm]}
125135
# - {os: debian, codename: bullseye, image_owner: , package_type: deb}
126136
# - {os: debian, codename: bullseye, image_owner: i386/, package_type: deb, labels: [i386,docker]}
127-
# - {os: debian, codename: bullseye, image_owner: arm32v7/, package_type: deb, labels: [arm,docker]}
128-
# - {os: debian, codename: bullseye, image_owner: arm64v8/, package_type: deb, labels: [arm64,docker]}
137+
# - {os: debian, codename: bullseye, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04-arm]}
138+
# - {os: debian, codename: bullseye, image_owner: arm64v8/, package_type: deb, labels: [ubuntu-24.04-arm]}
129139
- {os: debian, codename: bookworm, image_owner: , package_type: deb}
130140
# - {os: debian, codename: bookworm, image_owner: i386/, package_type: deb, labels: [i386,docker]}
131-
- {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [arm,docker]}
132-
- {os: debian, codename: bookworm, image_owner: arm64v8/, package_type: deb, labels: [arm64,docker]}
141+
- {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04-arm]}
142+
- {os: debian, codename: bookworm, image_owner: arm64v8/, package_type: deb, labels: [ubuntu-24.04-arm]}
133143
# - {os: ubuntu, codename: focal, image_owner: , package_type: deb}
134144
# - {os: ubuntu, codename: jammy, image_owner: , package_type: deb}
135145
- {os: ubuntu, codename: noble, image_owner: , package_type: deb}
136-
# - {os: raspbian, codename: buster, image_owner: igagis/, package_type: deb, labels: [arm,docker]}
137-
# - {os: raspbian, codename: bullseye, image_owner: igagis/, package_type: deb, labels: [arm,docker]}
138-
- {os: raspbian, codename: bookworm, image_owner: igagis/, package_type: deb, labels: [arm,docker]}
146+
# - {os: raspbian, codename: buster, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04-arm]}
147+
# - {os: raspbian, codename: bullseye, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04-arm]}
148+
# - {os: raspbian, codename: bookworm, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04-arm]}
139149
runs-on: ${{ (matrix.labels == '' && 'ubuntu-latest') || matrix.labels }}
140150
container: ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
141151
name: linux - ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
@@ -161,7 +171,7 @@ jobs:
161171
uses: myci-actions/checkout@main
162172
- name: set PACKAGE_VERSION
163173
uses: myci-actions/export-env-var@main
164-
with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog)}
174+
with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
165175
- name: prepare debian package
166176
run: myci-deb-prepare.sh
167177
- name: install deps
@@ -172,7 +182,9 @@ jobs:
172182
echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen
173183
locale-gen
174184
- name: build
175-
run: dpkg-buildpackage --unsigned-source --unsigned-changes
185+
run: |
186+
cd build
187+
dpkg-buildpackage --unsigned-source --unsigned-changes
176188
# - name: upload binaries to artifacts
177189
# uses: actions/upload-artifact@v3.1.2
178190
# with:
@@ -183,7 +195,7 @@ jobs:
183195
- name: deploy deb packages
184196
run: |
185197
echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
186-
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
198+
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
187199
if: matrix.package_type == 'deb' && startsWith(github.ref, 'refs/tags/')
188200
##### macosx #####
189201
macosx:
@@ -247,7 +259,7 @@ jobs:
247259
# uses: myci-actions/checkout@main
248260
# - name: set PACKAGE_VERSION
249261
# uses: myci-actions/export-env-var@main
250-
# with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog)}
262+
# with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
251263
# - name: add cocoapods repo
252264
# run: pod repo add --silent cppfw https://$MYCI_GIT_USERNAME@github.com/cppfw/cocoapods-repo.git
253265
# - name: install deps
@@ -273,7 +285,7 @@ jobs:
273285
# - name: deploy
274286
# run: |
275287
# echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
276-
# 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
288+
# 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
277289
# if: startsWith(github.ref, 'refs/tags/')
278290
##### android #####
279291
# android:
@@ -291,15 +303,15 @@ jobs:
291303
# install: myci
292304
# - name: set PACKAGE_VERSION
293305
# uses: myci-actions/export-env-var@main
294-
# with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog)}
306+
# with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
295307
# - name: build
296308
# run: |
297-
# cd android
309+
# cd build/android
298310
# ./gradlew copy_aar --warning-mode all
299311
# myci-apply-version.sh --version $PACKAGE_VERSION *.pom.in
300312
# myci-apply-version.sh --version $PACKAGE_VERSION *.aar.in --filename-only
301313
# - name: deploy
302-
# run: myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
314+
# run: myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android build/android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
303315
# if: startsWith(github.ref, 'refs/tags/')
304316
##### msys2 #####
305317
msys2:
@@ -341,43 +353,17 @@ jobs:
341353
- name: git clone
342354
uses: myci-actions/checkout@main
343355
- name: prepare pacman package
344-
run: myci-apply-version.sh --version $(myci-deb-version.sh debian/changelog) msys2/PKGBUILD.in
356+
run: myci-apply-version.sh build/msys2/PKGBUILD.in
345357
- name: build
346358
# to make makepkg-mingw build only one architecture we need to set the MINGW_ARCH
347359
env: {MINGW_ARCH: '${{ matrix.repo }}'}
348360
run: |
349-
cd msys2
361+
cd build/msys2
350362
PKGEXT='.pkg.tar.xz' makepkg-mingw --syncdeps --noconfirm --skipinteg
351363
- name: deploy
352364
run: |
353365
echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
354-
for f in $(find msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
366+
for f in $(find build/msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
355367
myci-deploy-pacman-ssh.sh --server gagis.hopto.org --key repo_key_rsa --repo cppfw/msys2/${{ matrix.repo }} --database cppfw_${{ matrix.repo }} $f
356368
done
357369
if: startsWith(github.ref, 'refs/tags/')
358-
##### msvs #####
359-
# msvs:
360-
# runs-on: windows-latest
361-
# defaults:
362-
# run:
363-
# shell: powershell
364-
# steps:
365-
# - name: git clone
366-
# uses: actions/checkout@v3
367-
# with: {submodules: true}
368-
# - name: install CoAPP tools
369-
# uses: myci-actions/install-coapp-tools@main
370-
# - name: nuget update
371-
# run: |
372-
# nuget restore msvs_solution/msvs_solution.sln
373-
# nuget update msvs_solution/msvs_solution.sln
374-
# - name: add msbuild to PATH
375-
# uses: microsoft/setup-msbuild@v1.1
376-
# - name: build
377-
# run: .\nuget\build_nuget.ps1
378-
# - name: deploy
379-
# uses: myci-actions/publish-nuget@main
380-
# with:
381-
# filename: '.\nuget\*.nupkg'
382-
# api-key: ${{ secrets.NUGET_DOT_ORG_API_KEY }}
383-
# 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: pautina
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}/tree/main[image:https://codecov.io/gh/cppfw/{name}/branch/main/graph/badge.svg?token=LKA3SRSkc3[codecov.io]]
7+
|====
8+
9+
Simple HTTP server in C++.

README.md

Lines changed: 0 additions & 1 deletion
This file was deleted.
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: libpautina$(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 service C++ library.
20-
HTTP service library.
22+
HTTP service library.
23+
24+
Package: libpautina-dbg$(soname)
25+
Section: libs
26+
Architecture: any
27+
Depends:
28+
${shlibs:Depends},
29+
${misc:Depends}
30+
Description: cross-platform HTTP service C++ library.
31+
Debug version of libpautina.
2132

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

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

3955
Package: libpautina-doc
4056
Section: doc
4157
Architecture: all
4258
Depends: ${misc:Depends}
4359
Description: documentation for libpautina library.
44-
For more details see description to libpautina-dev package.
60+
For more details see description to libpautina-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/libpautina.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.

0 commit comments

Comments
 (0)