@@ 6,8 6,15 @@
image: alpine/latest
packages:
+ - clang15-analyzer
+ - llvm15
- reuse
- meson
+ - git-subtree
+ - hut
+ - jq
+ - valgrind
+
- lv2-dev
- serd-dev
- sord-dev
@@ 16,18 23,46 @@ packages:
environment:
project: netatom.lv2
+secrets:
+ - 0545580c-42ac-4700-b322-4e9df924eb07 # runner-ssh
+ - 5fe806cd-3af4-4588-9898-8115d9262144 # hut-config
+ - d6d10b2a-542a-4b45-b1be-6ef30a8ab558 # git-config
+
+sources:
+ - https://git.open-music-kontrollers.ch/~hp/ci
+
tasks:
- - setup: |
- cd "${project}"
- meson setup build \
- -Dbuildtype=release \
- -Dbuild-tests=true
- - build: |
- cd "${project}"
- ninja -C build install
- - test: |
- cd "${project}"
- ninja -C build test
+ - gcc: |
+ . ~/ci/activate
+
+ ci-meson gcc setup
+ ci-meson gcc build
+ ci-meson gcc test
+ ci-meson gcc memcheck
+
+ - clang: |
+ . ~/ci/activate
+
+ ci-meson clang setup
+ ci-meson clang build
+ ci-meson clang test
+ ci-meson clang memcheck
+
+ - analyzer: |
+ . ~/ci/activate
+
+ ci-meson analyzer setup
+ ci-meson analyzer build
+ ci-meson analyzer test
+
+ - deploy: |
+ . ~/ci/activate
+
+ if ! ci-isrelease; then
+ complete-build
+ fi
+
+ ci-subtreemerge
triggers:
- action: email
@@ 17,29 17,44 @@ add_project_arguments('-D_GNU_SOURCE', language : 'c')
cc = meson.get_compiler('c')
lv2_dep = dependency('lv2')
-serd_dep = dependency('serd-0', version : '>= 0.30.0', required : build_tests)
-sord_dep = dependency('sord-0', version : '>= 0.16.0', required : build_tests)
-sratom_dep = dependency('sratom-0', version : '>= 0.6.0', required : build_tests)
-lib_deps = [lv2_dep]
+lib_deps = [
+ lv2_dep
+]
-lib_incs = []
-lib_incs += include_directories('')
+lib_incs = [
+ include_directories('')
+]
-lib_srcs = []
-lib_srcs += join_paths('src', 'netatom.c')
+lib_srcs = [
+ join_paths('src', 'netatom.c')
+]
+
+lib_args = [
+ '-Wno-nullability-extension'
+]
netatom_lv2 = declare_dependency(
+ compile_args : lib_args,
include_directories : lib_incs,
dependencies : lib_deps,
sources : lib_srcs)
if build_tests
- test_deps = [serd_dep, sord_dep, sratom_dep]
- test_deps += netatom_lv2
+ serd_dep = dependency('serd-0', version : '>= 0.30.0', required : build_tests)
+ sord_dep = dependency('sord-0', version : '>= 0.16.0', required : build_tests)
+ sratom_dep = dependency('sratom-0', version : '>= 0.6.0', required : build_tests)
+
+ test_deps = [
+ serd_dep,
+ sord_dep,
+ sratom_dep,
+ netatom_lv2
+ ]
- test_srcs = []
- test_srcs += join_paths('test', 'test.c')
+ test_srcs = [
+ join_paths('test', 'test.c')
+ ]
test_netatom = executable('Test', test_srcs,
dependencies : test_deps,
@@ 47,7 62,8 @@ if build_tests
test('Test', test_netatom,
args : ['128'],
- timeout : 360) # seconds
+ timeout : 360, # seconds
+ suite : ['memcheck'])
if reuse.found()
test('REUSE', reuse, args : [
@@ 3,7 3,7 @@
option('build-tests',
type : 'boolean',
- value : false,
- yield : true)
+ value : true,
+ yield : true)
-option('version', type : 'string', value : '0.1.79')
+option('version', type : 'string', value : '0.2.0')