-
Notifications
You must be signed in to change notification settings - Fork 32
161 lines (140 loc) · 4.89 KB
/
ci.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
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
name: ci
on:
push:
# Nightly builds
schedule:
- cron: '00 00 * * *'
# Common variables for all platforms (ldc is hardcoded in windows job)
env:
VST2_SDK: ${{ github.workspace }}/VST2_SDK
SETUP_VST2_SDK: true
# List of commands
DPlugBuild: ${{ github.workspace }}/tools/dplug-build/dplug-build
DplugProcess: ${{ github.workspace }}/tools/process/process
defaults:
run:
shell: pwsh
jobs:
Test:
if: "!contains(github.event.head_commit.message, '[skip ci]')"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- windows-latest
- ubuntu-latest
- macOS-latest
arch:
- 'x86_64'
compiler:
- ldc-latest
- ldc-1.26.0
- ldc-1.25.1
- ldc-1.24.0
steps:
# Checkout
- name: Checkout master branch
uses: actions/checkout@v2
with:
fetch-depth: 0
# Cache
- name: Cache
id: dplug-cache
uses: actions/cache@v2
env:
cache-name: dplug-cache
with:
path: |
${{ env.VST2_SDK }}
key: dplug-cache
# Install
- name: Install Dependencies - Ubuntu
if: startsWith(matrix.os,'ubuntu')
run: |
sudo apt-get -yq install libx11-dev
# - name: Install Dependencies - Mac
# if: startsWith(matrix.os,'macOS')
# run: |
# brew update
- name: Setup Visual Studio Command Prompt - Windows
if: startsWith(matrix.os,'windows')
uses: ilammy/msvc-dev-cmd@v1
# with:
# arch: ${{ matrix.arch }} # 'x64'by default
- name: Install compiler
uses: dlang-community/setup-dlang@v1
with:
compiler: ${{ matrix.compiler }}
- name: Setup VST2_SDK
if: contains(env.SETUP_VST2_SDK, 'true') && steps.dplug-cache.outputs.cache-hit != 'true'
run: |
curl -LOJ https://web.archive.org/web/20200502121517if_/https://www.steinberg.net/sdk_downloads/vstsdk366_27_06_2016_build_61.zip
7z x ./vstsdk366_27_06_2016_build_61.zip
mkdir -p ${{ env.VST2_SDK }}/pluginterfaces/vst2.x
cp "./VST3 SDK/pluginterfaces/vst2.x/aeffect.h" ${{ env.VST2_SDK }}/pluginterfaces/vst2.x/aeffect.h
cp "./VST3 SDK/pluginterfaces/vst2.x/aeffectx.h" ${{ env.VST2_SDK }}/pluginterfaces/vst2.x/aeffectx.h
- name: Install dplug-build
run: |
dub build
working-directory: ./tools/dplug-build
- name: Install process
run: |
dub build
working-directory: ./tools/process
# Test
# Here you can customize the flags, or build multiple plugins
## Distort Plugin
- name: Build and test distort plug-ins
run: |
if ("${{ matrix.os }}" -like 'windows*') {
$Plugins = "-c VST2 -c VST3"
$BuiltLib = "./builds/Windows-64b-VST2/Witty Audio Destructatorizer-64.dll"
} elseif ("${{ matrix.os }}" -like 'macOS*') {
$Plugins = "-c VST2 -c VST3 -c AU"
$BuiltLib = "./builds/macOS-64b-VST2/Witty Audio Destructatorizer.vst/Contents/MacOS/Witty Audio Destructatorizer"
} elseif ("${{ matrix.os }}" -like 'ubuntu*') {
$Plugins = "-c VST2 -c VST3 -c LV2"
$BuiltLib = "./builds/Linux-64b-VST2/Witty Audio Destructatorizer.so"
}
$esc = '--%'
${{ env.DPlugBuild }} -a ${{ matrix.arch }} $esc $Plugins
${{ env.DplugProcess }} $BuiltLib -t 10
working-directory: ./examples/distort
## Clipit Plugin
- name: Build and test clipit plug-ins
run: |
if ("${{ matrix.os }}" -like 'windows*') {
$Plugins = "-c VST2 -c VST3"
$BuiltLib = "./builds/Windows-64b-VST2/Witty Audio CLIP It-64.dll"
} elseif ("${{ matrix.os }}" -like 'macOS*') {
$Plugins = "-c VST2 -c VST3 -c AU"
$BuiltLib = "./builds/macOS-64b-VST2/Witty Audio CLIP It.vst/Contents/MacOS/Witty Audio CLIP It"
} elseif ("${{ matrix.os }}" -like 'ubuntu*') {
$Plugins = "-c VST2 -c VST3 -c LV2"
$BuiltLib = "./builds/Linux-64b-VST2/Witty Audio CLIP It.so"
}
$esc = '--%'
${{ env.DPlugBuild }} -a ${{ matrix.arch }} $esc $Plugins
${{ env.DplugProcess }} $BuiltLib -t 10
working-directory: ./examples/clipit
# Upload
# This task uploads the builds directory that contains all artifacts produced by dplug-build
# You may need to repeat this for each plugin that you build
# Pattern matching is not supported here
- name: Upload distort
uses: actions/upload-artifact@v2
with:
name: distort-${{ matrix.os }}
path: ./examples/distort/builds/
- name: Upload clipit
uses: actions/upload-artifact@v2
with:
name: clipit-${{ matrix.os }}
path: ./examples/clipit/builds/
Skip:
if: "contains(github.event.head_commit.message, '[skip ci]')"
runs-on: ubuntu-latest
steps:
- name: Skip CI 🚫
run: echo skip CI