Skip to content

Commit cc1bfb1

Browse files
committed
move build stuff to build dir
1 parent 8b81076 commit cc1bfb1

73 files changed

Lines changed: 896 additions & 636 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.clang-format

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
tool-configs/clang-format/.clang-format

.clang-tidy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
tool-configs/clang-tidy/.clang-tidy

.github/workflows/ci.yml

Lines changed: 128 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,113 @@ env:
1010
MYCI_GIT_USERNAME: igagis
1111
MYCI_GIT_PASSWORD: ${{ secrets.MYCI_GIT_ACCESS_TOKEN }}
1212
jobs:
13+
##### coverage #####
14+
coverage:
15+
runs-on: ubuntu-latest
16+
container: debian:bookworm
17+
name: coverage - measure
18+
env:
19+
linux_distro: debian
20+
linux_release: bookworm
21+
steps:
22+
- name: add cppfw deb repo
23+
uses: myci-actions/add-deb-repo@main
24+
with:
25+
repo: deb https://gagis.hopto.org/repo/cppfw/${{ env.linux_distro }} ${{ env.linux_release }} main
26+
repo-name: cppfw
27+
keys-asc: https://gagis.hopto.org/repo/cppfw/pubkey.gpg
28+
install: myci locales git pipx
29+
- name: add llvm repo (for clang-format)
30+
uses: myci-actions/add-deb-repo@main
31+
with:
32+
repo: deb http://apt.llvm.org/${{ env.linux_release }} llvm-toolchain-${{ env.linux_release }} main
33+
repo-name: llvm
34+
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
35+
- name: git clone
36+
uses: myci-actions/checkout@main
37+
- name: prepare debian package
38+
run: myci-deb-prepare.sh
39+
- name: install deps
40+
run: myci-deb-install-build-deps.sh
41+
- name: add DE locale
42+
# needed for testing that locale with "," as decimal delimiter does not break the parsing with string_parser
43+
run: |
44+
echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen
45+
locale-gen
46+
- name: build
47+
run: make config=gcov
48+
- name: test
49+
run: make config=gcov test
50+
- name: generate coverage report
51+
# due to some bug in gcov, we need to use --gcov-ignore-parse-errors=negative_hits.warn
52+
run: pipx run gcovr --gcov-ignore-parse-errors=negative_hits.warn --exclude-throw-branches --filter src/ --cobertura > cobertura.xml
53+
- name: upload coverage report to artifacts
54+
uses: actions/upload-artifact@v4
55+
with:
56+
name: cobertura.xml
57+
path: cobertura.xml
58+
- name: upload coverage data to codecov.io
59+
uses: codecov/codecov-action@v5
60+
if: always() # even if previous steps fail, this one needs to be run
61+
with:
62+
token: ${{ secrets.CODECOV_TOKEN }}
63+
# do not search for coverage files automatically, upload only specified files
64+
disable_search: true
65+
files: cobertura.xml
66+
# flags: unittests # optional
67+
name: codecov-umbrella # optional
68+
fail_ci_if_error: true # optional (default = false)
69+
verbose: true # optional (default = false)
70+
- name: upload test report to codecov.io
71+
if: always() # even if previous steps fail, this one needs to be run
72+
uses: codecov/test-results-action@v1
73+
with:
74+
token: ${{ secrets.CODECOV_TOKEN }}
75+
# do not search for coverage files automatically, upload only specified files
76+
disable_search: true
77+
files: tests/unit/out/gcov/junit.xml
78+
name: codecov-umbrella # optional
79+
fail_ci_if_error: true # optional (default = false)
80+
verbose: true # optional (default = false)
81+
##### sanitizer #####
82+
sanitizer:
83+
strategy:
84+
fail-fast: false
85+
matrix:
86+
include:
87+
- {os: debian, codename: bookworm, image_owner: }
88+
- {os: debian, codename: bookworm, image_owner: arm32v7/, labels: [ubuntu-24.04-arm]}
89+
- {os: debian, codename: bookworm, image_owner: arm64v8/, labels: [ubuntu-24.04-arm]}
90+
runs-on: ${{ (matrix.labels == '' && 'ubuntu-latest') || matrix.labels }}
91+
container: ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
92+
name: sanitizer - ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
93+
steps:
94+
- name: add cppfw deb repo
95+
uses: myci-actions/add-deb-repo@main
96+
with:
97+
repo: deb https://gagis.hopto.org/repo/cppfw/${{ matrix.os }} ${{ matrix.codename }} main
98+
repo-name: cppfw
99+
keys-asc: https://gagis.hopto.org/repo/cppfw/pubkey.gpg
100+
install: myci git
101+
- name: add llvm repo (for clang-format)
102+
uses: myci-actions/add-deb-repo@main
103+
with:
104+
repo: deb http://apt.llvm.org/${{ matrix.codename }} llvm-toolchain-${{ matrix.codename }} main
105+
repo-name: llvm
106+
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
107+
- name: install ci tools
108+
run: |
109+
apt install --assume-yes devscripts equivs
110+
- name: git clone
111+
uses: myci-actions/checkout@main
112+
- name: prepare debian package
113+
run: myci-deb-prepare.sh
114+
- name: install deps
115+
run: myci-deb-install-build-deps.sh
116+
- name: build
117+
run: make config=asan
118+
- name: test
119+
run: make config=asan test
13120
##### deb linux #####
14121
deb_linux:
15122
strategy:
@@ -18,21 +125,21 @@ jobs:
18125
include:
19126
# - {os: debian, codename: buster, image_owner: , package_type: deb}
20127
# - {os: debian, codename: buster, image_owner: i386/, package_type: deb, labels: [i386,docker]}
21-
# - {os: debian, codename: buster, image_owner: arm32v7/, package_type: deb, labels: [arm,docker]}
128+
# - {os: debian, codename: buster, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04-arm]}
22129
# - {os: debian, codename: bullseye, image_owner: , package_type: deb}
23130
# - {os: debian, codename: bullseye, image_owner: i386/, package_type: deb, labels: [i386,docker]}
24-
# - {os: debian, codename: bullseye, image_owner: arm32v7/, package_type: deb, labels: [arm,docker]}
25-
# - {os: debian, codename: bullseye, image_owner: arm64v8/, package_type: deb, labels: [arm64,docker]}
131+
# - {os: debian, codename: bullseye, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04-arm]}
132+
# - {os: debian, codename: bullseye, image_owner: arm64v8/, package_type: deb, labels: [ubuntu-24.04-arm]}
26133
- {os: debian, codename: bookworm, image_owner: , package_type: deb}
27134
# - {os: debian, codename: bookworm, image_owner: i386/, package_type: deb, labels: [i386,docker]}
28-
- {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [arm32,docker]}
29-
- {os: debian, codename: bookworm, image_owner: arm64v8/, package_type: deb, labels: [arm64,docker]}
135+
- {os: debian, codename: bookworm, image_owner: arm32v7/, package_type: deb, labels: [ubuntu-24.04-arm]}
136+
- {os: debian, codename: bookworm, image_owner: arm64v8/, package_type: deb, labels: [ubuntu-24.04-arm]}
30137
# - {os: ubuntu, codename: focal, image_owner: , package_type: deb}
31138
# - {os: ubuntu, codename: jammy, image_owner: , package_type: deb}
32139
- {os: ubuntu, codename: noble, image_owner: , package_type: deb}
33-
# - {os: raspbian, codename: buster, image_owner: igagis/, package_type: deb, labels: [arm,docker]}
34-
# - {os: raspbian, codename: bullseye, image_owner: igagis/, package_type: deb, labels: [arm,docker]}
35-
- {os: raspbian, codename: bookworm, image_owner: igagis/, package_type: deb, labels: [arm32,docker]}
140+
# - {os: raspbian, codename: buster, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04-arm]}
141+
# - {os: raspbian, codename: bullseye, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04-arm]}
142+
# - {os: raspbian, codename: bookworm, image_owner: igagis/, package_type: deb, labels: [ubuntu-24.04-arm]}
36143
runs-on: ${{ (matrix.labels == '' && 'ubuntu-latest') || matrix.labels }}
37144
container: ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
38145
name: linux - ${{ matrix.image_owner }}${{ matrix.os }}:${{ matrix.codename }}
@@ -58,17 +165,19 @@ jobs:
58165
uses: myci-actions/checkout@main
59166
- name: set PACKAGE_VERSION
60167
uses: myci-actions/export-env-var@main
61-
with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog)}
168+
with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
62169
- name: prepare debian package
63170
run: myci-deb-prepare.sh
64171
- name: install deps
65172
run: myci-deb-install-build-deps.sh
66173
- name: build
67-
run: dpkg-buildpackage --unsigned-source --unsigned-changes
174+
run: |
175+
cd build
176+
dpkg-buildpackage --unsigned-source --unsigned-changes
68177
- name: deploy deb packages
69178
run: |
70179
echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
71-
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
180+
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
72181
if: matrix.package_type == 'deb' && startsWith(github.ref, 'refs/tags/')
73182
##### macosx #####
74183
macosx:
@@ -135,7 +244,7 @@ jobs:
135244
uses: myci-actions/checkout@main
136245
- name: set PACKAGE_VERSION
137246
uses: myci-actions/export-env-var@main
138-
with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog)}
247+
with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
139248
- name: add cocoapods repo
140249
run: pod repo add --silent cppfw https://$MYCI_GIT_USERNAME@github.com/cppfw/cocoapods-repo.git
141250
- name: install deps
@@ -156,7 +265,7 @@ jobs:
156265
- name: deploy
157266
run: |
158267
echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
159-
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
268+
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
160269
if: startsWith(github.ref, 'refs/tags/')
161270
##### android #####
162271
android:
@@ -174,15 +283,15 @@ jobs:
174283
install: myci
175284
- name: set PACKAGE_VERSION
176285
uses: myci-actions/export-env-var@main
177-
with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh debian/changelog)}
286+
with: {name: PACKAGE_VERSION, value: $(myci-deb-version.sh)}
178287
- name: build
179288
run: |
180-
cd android
289+
cd build/android
181290
./gradlew copy_aar --warning-mode all
182291
myci-apply-version.sh -v $PACKAGE_VERSION *.pom.in
183292
myci-apply-version.sh -v $PACKAGE_VERSION *.aar.in --filename-only
184293
- name: deploy
185-
run: myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
294+
run: myci-deploy-maven-nexus.sh --base-url https://gagis.hopto.org/nexus --repo android build/android/$PACKAGE_NAME-$PACKAGE_VERSION.aar
186295
if: startsWith(github.ref, 'refs/tags/')
187296
##### msys2 #####
188297
msys2:
@@ -224,17 +333,17 @@ jobs:
224333
- name: git clone
225334
uses: myci-actions/checkout@main
226335
- name: prepare pacman package
227-
run: myci-apply-version.sh -v $(myci-deb-version.sh debian/changelog) msys2/PKGBUILD.in
336+
run: myci-apply-version.sh build/msys2/PKGBUILD.in
228337
- name: build
229338
# to make makepkg-mingw build only one architecture we need to set the MINGW_INSTALLS
230339
env: {MINGW_INSTALLS: '${{ matrix.repo }}'}
231340
run: |
232-
cd msys2
341+
cd build/msys2
233342
PKGEXT='.pkg.tar.xz' makepkg-mingw --syncdeps --noconfirm --skipinteg
234343
- name: deploy
235344
run: |
236345
echo "${{ secrets.MYCI_REPO_SSH_KEY }}" > repo_key_rsa && chmod 600 repo_key_rsa
237-
for f in $(find msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
346+
for f in $(find build/msys2 -name "mingw-w64-${{ matrix.arch }}-$PACKAGE_NAME-*-any.pkg.*"); do
238347
myci-deploy-pacman-ssh.sh --server gagis.hopto.org --key repo_key_rsa --repo cppfw/msys2/${{ matrix.repo }} --database cppfw_${{ matrix.repo }} $f
239348
done
240349
if: startsWith(github.ref, 'refs/tags/')

.gitmodules

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[submodule "tool-configs"]
2+
path = tool-configs
3+
url = ../tool-configs
4+
branch = main

README.adoc

Lines changed: 1 addition & 1 deletion

android/audout/CMakeLists.txt

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)