-
Notifications
You must be signed in to change notification settings - Fork 404
133 lines (112 loc) · 3.8 KB
/
build-pr.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
name: Build Pull Request
on:
pull_request:
defaults:
run:
shell: bash
jobs:
build_plugin:
name: PR - ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- name: "windows msvc common only"
os: windows-latest
target: surge-common
cmakeConfig: -A x64
cmakeOpt: DEBUG
runTests: false
- name: "windows msvc surgepy"
os: windows-latest
target: surgepy
cmakeConfig: -A x64 -DSURGE_BUILD_PYTHON_BINDINGS=TRUE
cmakeOpt: DEBUG
runTests: false
- name: "windows msvc arm64ec"
os: windows-latest
target: surge-xt_Standalone
cmakeConfig: -G"Visual Studio 17 2022" -A arm64ec -DCMAKE_SYSTEM_VERSION=10 -DSURGE_SKIP_LUA=TRUE
cmakeOpt: DEBUG
runTests: false
- name: "windows clang"
os: windows-latest
target: surge-xt_Standalone
cmakeConfig: -GNinja -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
cmakeOpt: DEBUG
runTests: false
- name: "ubuntu standalone"
os: ubuntu-latest
target: surge-xt_Standalone
cmakeConfig: -GNinja
cmakeOpt: DEBUG
runTests: false
- name: "ubuntu latest surgepy"
os: ubuntu-latest
target: surgepy
cmakeConfig: -GNinja -DSURGE_BUILD_PYTHON_BINDINGS=TRUE
cmakeOpt: DEBUG
runTests: false
- name: "macos standalone"
os: macos-latest
target: surge-xt_Standalone
cmakeConfig: -GNinja -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
cmakeOpt: DEBUG
runTests: false
- name: "mac test runner"
os: macos-latest
target: surge-testrunner
cmakeConfig: -GNinja
cmakeOpt: RELEASE
runTests: true
- name: "linux test runner"
os: ubuntu-latest
target: surge-testrunner
cmakeConfig: -GNinja
cmakeOpt: RELEASE
runTests: true
- name: "windows test runner"
os: windows-latest
target: surge-testrunner
cmakeConfig: -GNinja -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
cmakeOpt: RELEASE
runTests: true
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Prepare for JUCE
uses: surge-synthesizer/sst-githubactions/prepare-for-juce@main
with:
os: ${{ runner.os }}
- name: Which package
if: ${{ runner.os }} == 'Linux'
run: |
sudo apt-get install libfreetype-dev
- name: Build pull request version
run: |
cmake -S . -B ./build ${{ matrix.cmakeConfig }} -DCMAKE_BUILD_TYPE=${{ matrix.cmakeOpt }}
cmake --build ./build --config ${{ matrix.cmakeOpt }} --target ${{ matrix.target }} --parallel 3
- name: Run Tests
if: ${{ matrix.runTests }}
run: |
set -e
cd build
ctest -j 4 || ctest --rerun-failed --output-on-failure
build_plugin_lindoc:
name: PR - U20 Docker
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build in Docker
uses: surge-synthesizer/sst-githubactions/cmake-in-docker@main
with:
image: ghcr.io/surge-synthesizer/sst-dockerimages/ubuntu20_gcc11:main
username: ${{ github.actor }}
token: ${{ secrets.GITHUB_TOKEN }}
cmakeArgs: -DCMAKE_BUILD_TYPE=Debug -GNinja
target: surge-xt_Standalone surge-fx_Standalone