-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathbitbucket-pipelines.yml
85 lines (74 loc) · 3.67 KB
/
bitbucket-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: ubuntu:22.04
pipelines:
default:
- step:
name: Build sushi + tests
caches:
- vcpkg
script:
# Prepare system.
- apt-get update -y
- apt install build-essential -y
- apt-get install -y -q libjack-jackd2-dev liblo-dev
- apt-get install -y -q libsndfile1-dev libasound2-dev
- apt-get install -y -q cmake git make
- apt-get install -y -q curl zip unzip tar
- apt-get install -y -q libgrpc++-dev protobuf-compiler-grpc
- apt-get install -y -q liblilv-dev lilv-utils lv2-dev lv2-examples mda-lv2
- apt-get install -y software-properties-common
- add-apt-repository -y ppa:ubuntu-toolchain-r/test
- export LV2_PATH=$HOME/.lv2:/usr/local/lib/lv2:/usr/lib/lv2
# Prepare dependencies
# Rewrite the relative submodule url as bitbucket doesn't handle relative paths correctly
- sed -i 's/url = \.\.\(.*\)/url = [email protected]:'$BITBUCKET_TEAM'\1/g' .gitmodules
- git submodule update --init --recursive
# Set test data dir (for running unit test manually)
- export SUSHI_TEST_DATA_DIR=$PWD/test/data
# Boostrap vcpkg
- export VCPKG_BINARY_SOURCES="clear;files,$(pwd)/vcpkgcache,readwrite"
- ./third-party/vcpkg/bootstrap-vcpkg.sh
- mkdir build
- cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../third-party/vcpkg/scripts/buildsystems/vcpkg.cmake -DWITH_XENOMAI=FALSE -DWITH_JACK=TRUE -DWITH_VST2=OFF -DWITH_LV2=ON -DWITH_LV2_MDA_TESTS=ON -DTWINE_WITH_XENOMAI=OFF -DSUSHI_BUILD_WITH_SANITIZERS=OFF ..
# Build multiple configuration and run unit tests
# Build sushi and unit tests with default options and default buffer size (64 samples)
- make sushi -j4
- make unit_tests -j4
# Run unit tests with some tests test disabled
- cd test
- ./unit_tests --gtest_filter=-TestAudioGraph.TestMultiCoreOperation:TestLv2Wrapper.TestSynchronousStateAndWorkerThreads:TestLv2Wrapper.TestMidiEventInputAndOutput
- cd ..
# Build with buffers size 32 samples
- cmake -DSUSHI_AUDIO_BUFFER_SIZE=32 ..
- make sushi -j4
- make unit_tests -j4
- cd test
- ./unit_tests --gtest_filter=-TestAudioGraph.TestMultiCoreOperation:TestLv2Wrapper.TestSynchronousStateAndWorkerThreads:TestLv2Wrapper.TestMidiEventInputAndOutput
- cd ..
# Build with buffer size 128 samples
- cmake -DSUSHI_AUDIO_BUFFER_SIZE=128 ..
- make sushi -j4
- make unit_tests -j4
- cd test
- ./unit_tests --gtest_filter=-TestAudioGraph.TestMultiCoreOperation:TestLv2Wrapper.TestSynchronousStateAndWorkerThreads:TestLv2Wrapper.TestMidiEventInputAndOutput
- cd ..
# Quick smoke test (not really working yet)
#- ./sushi -d -c ../../misc/config_files/config_play.json&
#- sleep 6
#- pkill sushi
# Build with most options disabled to test compile time configuration
- cmake -DAUDIO_BUFFER_SIZE=64 -DSUSHI_WITH_VST2=OFF -DSUSHI_WITH_VST3=OFF -DSUSHI_WITH_LV2=OFF -DSUSHI_WITH_LV2_MDA_TESTS=OFF -DSUSHI_WITH_RT_MIDI=ON -DSUSHI_WITH_ALSA_MIDI=OFF ..
- make sushi -j4
- make unit_tests -j4
- cd test
- ./unit_tests --gtest_filter=-TestAudioGraph.TestMultiCoreOperation
- cd ..
definitions:
caches:
vcpkg: vcpkgcache
variables:
- name: BUILD_CORES
default: 4