File: build.yml

package info (click to toggle)
lsp-plugins 1.2.26-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 130,004 kB
  • sloc: cpp: 642,749; xml: 78,805; makefile: 14,229; php: 1,361; sh: 185
file content (237 lines) | stat: -rw-r--r-- 10,640 bytes parent folder | download | duplicates (47)
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
---

name: Build on various Operating Systems

on:
  push:
    branches: [devel, master]
  pull_request:
    branches: [devel, master]

env:
  CARLA_BRIDGE_DUMMY: 1
  CARLA_BRIDGE_TESTING: native
  # FIXME some system library is causing memory leaks, switch to --leak-check=full when fixed
  PLUGIN_METADATA: .build/target/lsp-plugin-fw/plugins.json
  VALGRIND_ARGS: --error-exitcode=255 --leak-check=no --track-origins=yes --suppressions=.github/workflows/valgrind.supp
  VALGRIND_DEBUG_ARGS: --error-exitcode=255 --leak-check=full --track-origins=yes --keep-debuginfo=yes --suppressions=.github/workflows/valgrind.supp

jobs:
  arch_linux:
    runs-on: ubuntu-latest
    container:
      image: archlinux:latest
    steps:
      - name: Add debug repositories
        run: |
          printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[multilib-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
          printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist
      - name: Install dependencies
        run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack2 jq libglvnd libsndfile libx11 libxrandr lv2lint php valgrind gstreamer gst-plugins-base
      - uses: actions/checkout@v3
      - name: Configure project
        run: make config STRICT=1 VERBOSE=1 FEATURES='clap doc jack gst ladspa lv2 ui vst2 vst3 xdg' PREFIX=/usr
      - name: Fetch project dependencies
        run: make fetch
      - name: Build project
        run: make VERBOSE=1
      - name: Install binaries
        run: make install
      - name: System information
        run: lscpu
      - name: Lint LV2 plugins
        run: |
          for _plugin in $(jq -r '.plugins[].lv2_uri | select( . != null )' ${{ env.PLUGIN_METADATA }} ); do \
            lv2lint -Mpack "${_plugin}"; \
          done
      - name: Validate LV2 syntax
        run: lv2_validate /usr/lib/lv2/lsp-*.lv2/*.ttl
      - name: LADSPA runtime checks
        run: |
          for _plugin in $(jq -r '.plugins[].ladspa_label | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
            valgrind ${{ env.VALGRIND_ARGS }} /usr/lib/carla/carla-bridge-native ladspa /usr/lib/ladspa/lsp-*.so "${_plugin}" 1>/dev/null; \
          done
      - name: LV2 runtime checks
        run: |
          for _plugin in $(jq -r '.plugins[].lv2_uri | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
            valgrind ${{ env.VALGRIND_ARGS }} /usr/lib/carla/carla-bridge-native lv2 "" "${_plugin}" 1>/dev/null; \
          done
      - name: VST2 runtime checks
        run: |
          for _binary in $(ls /usr/lib/vst/lsp-plugins/*.so | grep -v /liblsp-plugins-); do \
            valgrind ${{ env.VALGRIND_ARGS }} /usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
          done

  arch_linux_asan:
    runs-on: ubuntu-latest
    container:
      image: archlinux:latest
    steps:
      - name: Add debug repositories
        run: |
          printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[multilib-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
          printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist
      - name: Install dependencies
        run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack2 jq libglvnd libsndfile libx11 libxrandr php valgrind gstreamer gst-plugins-base
      - uses: actions/checkout@v3
      - name: Configure project
        run: make config STRICT=1 DEBUG=1 VERBOSE=1 ASAN=1 FEATURES='clap jack gst ladspa ui lv2 vst2 vst3' PREFIX=/usr
      - name: Fetch project dependencies
        run: make fetch
      - name: Build project
        run: make VERBOSE=1
      - name: Install binaries
        run: make install
      - name: System information
        run: lscpu
      - name: LADSPA runtime checks
        run: |
          for _plugin in $(jq -r '.plugins[].ladspa_label | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
            export ASAN_OPTIONS=verify_asan_link_order=0; \
            /usr/lib/carla/carla-bridge-native ladspa /usr/lib/ladspa/lsp-*.so "${_plugin}" 1>/dev/null; \
          done
      - name: LV2 runtime checks
        run: |
          for _plugin in $(jq -r '.plugins[].lv2_uri | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
            export ASAN_OPTIONS=verify_asan_link_order=0; \
            /usr/lib/carla/carla-bridge-native lv2 "" "${_plugin}" 1>/dev/null; \
          done
      - name: VST2 runtime checks
        run: |
          for _binary in $(ls /usr/lib/vst/lsp-plugins/*.so | grep -v /liblsp-plugins-); do \
            export ASAN_OPTIONS=verify_asan_link_order=0; \
            /usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
          done

  arch_linux_valgrind:
    runs-on: ubuntu-latest
    container:
      image: archlinux:latest
    steps:
      - name: Add debug repositories
        run: |
          printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[multilib-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
          printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist
      - name: Install dependencies
        run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack2 jq libglvnd libsndfile libx11 libxrandr php valgrind gstreamer gst-plugins-base
      - uses: actions/checkout@v3
      - name: Configure project
        run: make config STRICT=1 DEBUG=1 VERBOSE=1 FEATURES='clap jack gst ladspa lv2 ui vst2 vst3' PREFIX=/usr
      - name: Fetch project dependencies
        run: make fetch
      - name: Build project
        run: make VERBOSE=1
      - name: Install binaries
        run: make install
      - name: System information
        run: lscpu
      - name: LADSPA runtime checks
        run: |
          for _plugin in $(jq -r '.plugins[].ladspa_label | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
            valgrind ${{ env.VALGRIND_DEBUG_ARGS }} /usr/lib/carla/carla-bridge-native ladspa /usr/lib/ladspa/lsp-*.so "${_plugin}" 1>/dev/null; \
          done
      - name: LV2 runtime checks
        run: |
          for _plugin in $(jq -r '.plugins[].lv2_uri | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
            valgrind ${{ env.VALGRIND_DEBUG_ARGS }} /usr/lib/carla/carla-bridge-native lv2 "" "${_plugin}" 1>/dev/null; \
          done
      - name: VST2 runtime checks
        run: |
          for _binary in $(ls /usr/lib/vst/lsp-plugins/*.so | grep -v /liblsp-plugins-); do \
            valgrind ${{ env.VALGRIND_DEBUG_ARGS }} /usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
          done

  opensuse_leap:
    runs-on: ubuntu-latest
    container:
      image: opensuse/leap:latest
    steps:
      - name: Install dependencies
        run: zypper --non-interactive --no-gpg-checks in tar gzip gcc gcc-c++ glibc-locale git make php valgrind libX11-devel libXrandr-devel Mesa-libGL-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel gstreamer-devel gstreamer-plugins-base-devel
      - uses: actions/checkout@v3
      - name: Configure project
        run: make config STRICT=1 VERBOSE=1 FEATURES='clap doc jack gst ladspa lv2 ui vst2 vst3 xdg' PREFIX=/usr
      - name: Fetch project dependencies
        run: make fetch
      - name: Build project
        run: make VERBOSE=1
      - name: Install binaries
        run: make install

  opensuse_tumbleweed_clang:
    runs-on: ubuntu-latest
    container:
      image: opensuse/tumbleweed:latest
    steps:
      - name: Install dependencies
        run: zypper --non-interactive --no-gpg-checks in tar gzip gcc gcc-c++ glibc-locale glibc-gconv-modules-extra clang lld git make php8-cli valgrind libstdc++-devel libX11-devel libXrandr-devel Mesa-libGL-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel gstreamer-devel gstreamer-plugins-base-devel
      - uses: actions/checkout@v3
      - name: Configure project
        run: make config CC=clang CXX=clang++ STRICT=1 VERBOSE=1 FEATURES='clap doc jack gst ladspa lv2 ui vst2 vst3 xdg' PREFIX=/usr
      - name: Fetch project dependencies
        run: make fetch
      - name: Build project
        run: make VERBOSE=1
      - name: Install binaries
        run: make install

  debian_stable:
    runs-on: ubuntu-latest
    container:
      image: debian:stable
    steps:
      - name: Update repositories
        run: apt-get update
      - name: Install dependencies
        run: apt-get -y install gcc g++ git make php-cli pkg-config valgrind libx11-dev libxrandr-dev libjack-dev libcairo2-dev libgl-dev libfreetype6-dev libsndfile1-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
      - uses: actions/checkout@v3
      - name: Configure project
        run: make config STRICT=1 VERBOSE=1 FEATURES='clap doc jack gst ladspa lv2 ui vst2 vst3 xdg' PREFIX=/usr
      - name: Fetch project dependencies
        run: make fetch
      - name: Build project
        run: make VERBOSE=1
      - name: Install binaries
        run: make install

  windows_mingw64:
    runs-on: windows-2022
    defaults:
      run:
        shell: msys2 {0}
    steps:
      - name: Setup MSYS2 and install dependencies
        uses: msys2/setup-msys2@v2
        with:
          msystem: MINGW64
          release: false
          update: false
          install: >-
            base-devel
            git
            mingw-w64-x86_64-gcc
      - uses: actions/checkout@v3
      - name: Configure project
        shell: msys2 {0}
        run: make config STRICT=1 VERBOSE=1 FEATURES='clap ladspa lv2 ui vst2 vst3'
      - name: Fetch project dependencies
        shell: msys2 {0}
        run: make fetch
      - name: Build project
        shell: msys2 {0}
        run: make VERBOSE=1

  macos_stable:
    runs-on: macos-latest
    steps:
      - name: Update repositories
        run: brew update
      - name: Install dependencies
        run: brew install make pkgconf cairo freetype
      - uses: actions/checkout@v3
      - name: Configure project
        run: gmake config STRICT=1 VERBOSE=1 FEATURES='lv2 ui'
      - name: Fetch project dependencies
        run: gmake fetch
      - name: Build project
        run: gmake VERBOSE=1