File: build.yml

package info (click to toggle)
lsp-plugins 1.2.5-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 91,856 kB
  • sloc: cpp: 427,831; xml: 57,779; makefile: 9,961; php: 1,005; sh: 18
file content (151 lines) | stat: -rw-r--r-- 6,930 bytes parent folder | download | duplicates (29)
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
---

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[community-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 jack jq ladspa libglvnd libsndfile libx11 libxrandr lv2 lv2lint php valgrind
      - uses: actions/checkout@v3
      - name: Configure project
        run: make config VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
      - name: Fetch project dependencies
        run: make fetch
      - name: Build project
        run: make VERBOSE=1
      - name: Install binaries
        run: make install
      - 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 /lsp-plugins-); do \
            valgrind ${{ env.VALGRIND_ARGS }} /usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
          done

  arch_linux_debug:
    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[community-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 jack jq ladspa libglvnd libsndfile libx11 libxrandr lv2 php valgrind
      - uses: actions/checkout@v3
      - name: Configure project
        run: make config DEBUG=1 VERBOSE=1 FEATURES='jack ladspa lv2 vst2' PREFIX=/usr
      - name: Fetch project dependencies
        run: make fetch
      - name: Build project
        run: make VERBOSE=1
      - name: Install binaries
        run: make install
      - 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 /lsp-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++ git make php valgrind libX11-devel libXrandr-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel lv2-devel ladspa-devel
      - uses: actions/checkout@v3
      - name: Configure project
        run: make config VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 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++ clang lld git make php8-cli valgrind libstdc++-devel libX11-devel libXrandr-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel lv2-devel ladspa-devel
      - uses: actions/checkout@v3
      - name: Configure project
        run: make config CC=clang CXX=clang++ VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 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 lv2-dev ladspa-sdk
      - uses: actions/checkout@v3
      - name: Configure project
        run: make config VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
      - name: Fetch project dependencies
        run: make fetch
      - name: Build project
        run: make VERBOSE=1
      - name: Install binaries
        run: make install