@@ -28,18 +28,18 @@ jobs:
28
28
name : ${{ matrix.name }}
29
29
runs-on : ${{ matrix.os }}
30
30
strategy :
31
- fail-fast : false # show all errors for each platform (vs. cancel jobs on error)
31
+ fail-fast : true # show all errors for each platform (vs. cancel jobs on error)
32
32
matrix :
33
33
include :
34
34
- name : Linux
35
35
os : ubuntu-22.04
36
36
pluginval-binary : ./pluginval
37
- # - name: macOS
38
- # os: macos-14
39
- # pluginval-binary: pluginval.app/Contents/MacOS/pluginval
40
37
- name : Windows
41
38
os : windows-latest
42
39
pluginval-binary : ./pluginval.exe
40
+ - name : macOS
41
+ os : macos-latest
42
+ pluginval-binary : ./pluginval
43
43
44
44
steps :
45
45
59
59
sudo apt-get install -y --allow-downgrades libc6=2.35-0ubuntu3.6 libc6-dev=2.35-0ubuntu3.6 libstdc++6=12.3.0-1ubuntu1~22.04 libgcc-s1=12.3.0-1ubuntu1~22.04
60
60
sudo /usr/bin/Xvfb $DISPLAY &
61
61
62
- # - name: Cache IPP (Windows)
63
- # if: runner.os == 'Windows'
64
- # id: cache-ipp
65
- # uses: actions/cache@v3
66
- # with:
67
- # key: ipp-v4
68
- # path: C:\Program Files (x86)\Intel
69
-
70
- # - name: Install IPP (Windows)
71
- # if: (runner.os == 'Windows') && (steps.cache-ipp.outputs.cache-hit != 'true')
72
- # shell: bash
73
- # run: |
74
- # curl --output oneapi.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/8d158661-ca8f-4e66-b5ea-3e0b3d00836a/w_ipp_oneapi_p_2021.10.1.15_offline.exe
75
- # ./oneapi.exe -s -x -f oneapi
76
- # ./oneapi/bootstrapper.exe -s -c --action install --components=intel.oneapi.win.ipp.devel --eula=accept -p=NEED_VS2022_INTEGRATION=1 --log-dir=.
77
-
78
- # - name: Save IPP cache (even on CI fail)
79
- # if: runner.os == 'Windows' && (steps.cache-ipp.outputs.cache-hit != 'true')
80
- # uses: actions/cache/save@v3
81
- # with:
82
- # path: C:\Program Files (x86)\Intel
83
- # key: ipp-v4
84
-
85
62
- name : Install Ninja (Windows)
86
63
if : runner.os == 'Windows'
87
64
shell : bash
@@ -110,13 +87,6 @@ jobs:
110
87
- name : Cache the build
111
88
uses :
mozilla-actions/[email protected]
112
89
113
- - name : Import Certificates (macOS)
114
- uses : apple-actions/import-codesign-certs@v2 # only exists as a tag right now
115
- if : ${{ matrix.name == 'macOS' }}
116
- with :
117
- p12-file-base64 : ${{ secrets.DEV_ID_APP_CERT }}
118
- p12-password : ${{ secrets.DEV_ID_APP_PASSWORD }}
119
-
120
90
- name : Configure
121
91
shell : bash
122
92
run : cmake -B ${{ env.BUILD_DIR }} -G Ninja -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE}} -DCMAKE_C_COMPILER_LAUNCHER=${{ matrix.ccache }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ matrix.ccache }} -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" .
@@ -153,66 +123,17 @@ jobs:
153
123
7z x pluginval_${{ matrix.name }}.zip
154
124
${{ matrix.pluginval-binary }} --strictness-level 10 --verbose --validate "${{ env.VST3_PATH }}"
155
125
156
- - name : Codesign (macOS)
157
- if : ${{ matrix.name == 'macOS' }}
158
- run : |
159
- # Each plugin must be code signed
160
- codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION}}" -v "${{ env.VST3_PATH }}" --deep --strict --options=runtime --timestamp
161
- codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION}}" -v "${{ env.AU_PATH }}" --deep --strict --options=runtime --timestamp
162
- codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION}}" -v "${{ env.STANDALONE_PATH }}" --deep --strict --options=runtime --timestamp
163
-
164
- - name : Add Custom Icons (macOS)
165
- if : ${{ matrix.name == 'macOS' }}
166
- run : |
167
- # add the icns as its own icon resource (meta!)
168
- sips -i packaging/pamplejuce.icns
169
-
170
- # Grab the resource, put in tempfile
171
- DeRez -only icns packaging/pamplejuce.icns > /tmp/icons
172
-
173
- # Stuff the resource into the strange Icon? file's resource fork
174
- Rez -a /tmp/icons -o "${{ env.VST3_PATH }}/Icon"$'\r'
175
- Rez -a /tmp/icons -o "${{ env.AU_PATH }}/Icon"$'\r'
176
-
177
- # Set custom icon attribute
178
- SetFile -a C "${{ env.VST3_PATH }}"
179
- SetFile -a C "${{ env.AU_PATH }}"
180
-
181
- - name : Create DMG, Notarize and Staple (macOS)
182
- if : ${{ matrix.name == 'macOS' }}
183
- run : |
184
- # workaround for https://github.com/LinusU/node-appdmg/issues/234
185
- python3 -m pip install setuptools
186
- npm install -g appdmg
187
- mkdir -p packaging/dmg
188
-
189
- # Create directories for the dmg symlinks
190
- sudo mkdir -m 755 -p /Library/Audio/Plug-Ins/Components && sudo mkdir -m 755 -p /Library/Audio/Plug-Ins/VST3
191
- ln -s /Library/Audio/Plug-Ins/Components "packaging/dmg/Your Mac's Component folder"
192
- ln -s /Library/Audio/Plug-Ins/VST3 "packaging/dmg/Your Mac's VST3 folder"
193
- mv "${{ env.VST3_PATH }}" packaging/dmg
194
- mv "${{ env.AU_PATH }}" packaging/dmg
195
- mv "${{ env.STANDALONE_PATH }}" packaging/dmg
196
-
197
- # Run appdmg to create the .dmg
198
- cd packaging && appdmg dmg.json "${{ env.ARTIFACT_NAME}}.dmg"
199
- codesign -s "${{ secrets.DEVELOPER_ID_APPLICATION}}" --timestamp -i ${{ env.BUNDLE_ID }} --force "${{ env.ARTIFACT_NAME }}.dmg"
200
- xcrun notarytool submit "${{ env.ARTIFACT_NAME }}.dmg" --apple-id ${{ secrets.NOTARIZATION_USERNAME }} --password ${{ secrets.NOTARIZATION_PASSWORD }} --team-id ${{ secrets.TEAM_ID }} --wait
201
- xcrun stapler staple "${{ env.ARTIFACT_NAME }}.dmg"
202
-
203
126
- name : Zip
204
127
if : ${{ matrix.name == 'Linux' }}
205
128
working-directory : ${{ env.ARTIFACTS_PATH }}
206
129
run : 7z a -tzip "${{ env.ARTIFACT_NAME }}.zip" .
207
130
208
- - name : Generate Installer and Sign with EV cert on Azure (Windows)
131
+ - name : Generate Installer (Windows)
209
132
if : ${{ matrix.name == 'Windows' }}
210
133
shell : bash
211
134
run : |
212
135
iscc "packaging\installer.iss"
213
136
mv "packaging/Output/${{ env.ARTIFACT_NAME }}.exe" "${{ env.ARTIFACTS_PATH }}/"
214
- # dotnet tool install --global AzureSignTool
215
- # AzureSignTool sign -kvu "${{ secrets.AZURE_KEY_VAULT_URI }}" -kvi "${{ secrets.AZURE_CLIENT_ID }}" -kvt "${{ secrets.AZURE_TENANT_ID }}" -kvs "${{ secrets.AZURE_CLIENT_SECRET }}" -kvc ${{ secrets.AZURE_CERT_NAME }} -tr http://timestamp.digicert.com -v "${{ env.ARTIFACTS_PATH }}/${{ env.ARTIFACT_NAME }}.exe"
216
137
217
138
- name : Upload Exe (Windows)
218
139
if : ${{ matrix.name == 'Windows' }}
@@ -228,12 +149,12 @@ jobs:
228
149
name : ${{ env.ARTIFACT_NAME }}.zip
229
150
path : ' ${{ env.ARTIFACTS_PATH }}/${{ env.ARTIFACT_NAME }}.zip'
230
151
231
- - name : Upload DMG (macOS)
152
+ - name : Upload Standalone (macOS)
232
153
if : ${{ matrix.name == 'macOS' }}
233
154
uses : actions/upload-artifact@v3
234
155
with :
235
- name : ${{ env.ARTIFACT_NAME }}.dmg
236
- path : packaging/ ${{ env.ARTIFACT_NAME }}.dmg
156
+ name : ${{ env.ARTIFACT_NAME }}.app
157
+ path : ' ${{ env.STANDALONE_PATH }}'
237
158
238
159
release :
239
160
if : contains(github.ref, 'tags/v')
@@ -253,4 +174,4 @@ jobs:
253
174
files : |
254
175
*/*.exe
255
176
*/*.zip
256
- */*.dmg
177
+ */*.app
0 commit comments