9
9
fail-fast : false
10
10
matrix :
11
11
cfg :
12
- - { os: macos-10.15, xcode_version: '11.3', build: 'qmake', dist: true }
13
- - { os: macos-12, xcode_version: '13.2.1', build: 'cmake', dist: false }
12
+ # - { os: macos-10.15, xcode_version: '11.3', build: 'qmake', dist: false }
13
+ - { os: macos-12, xcode_version: '13.2.1', build: 'cmake', dist: true }
14
14
15
15
name : ${{matrix.cfg.os}} ${{matrix.cfg.build}}
16
16
37
37
brew install glib
38
38
brew install cairo
39
39
brew install poppler
40
+ brew install sparkle
40
41
# Install Qt 5.15.2
41
42
# NOTE: jurplel/install-qt-action@v2.14.0 hasn't supported Qt6.2.4
42
43
- name : Install Qt 5.15.2
@@ -109,7 +110,26 @@ jobs:
109
110
run : |
110
111
mkdir build
111
112
cd build
112
- cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_SENTRY=${{secrets.SENTRY_DSN}} -DCMAKE_PREFIX_PATH=$RUNNER_WORKSPACE/Qt/5.15.2/clang_64/lib/cmake ${{ github.workspace }}
113
+ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_SPARKLE=TRUE -DENABLE_SENTRY=${{secrets.SENTRY_DSN}} -DCMAKE_PREFIX_PATH=$RUNNER_WORKSPACE/Qt/5.15.2/clang_64/lib/cmake ${{ github.workspace }}
114
+
115
+ - name : Install Certificate
116
+ if : ${{ matrix.cfg.dist }}
117
+ env :
118
+ MACOS_CERTIFICATE : ${{ secrets.DEVELOPMENT_CERTIFICATE_DATA }}
119
+ MACOS_CERTIFICATE_PWD : ${{ secrets.DEVELOPMENT_CERTIFICATE_PASSPHRASE }}
120
+ MACOS_KEYCHAIN_PASSWORD : ${{ secrets.KEYCHAIN_PASSWORD }}
121
+ # SIGN_IDENTITY_ID:
122
+ run : |
123
+ echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12
124
+ security create-keychain -p $MACOS_KEYCHAIN_PASSWORD build.keychain
125
+ security default-keychain -s build.keychain
126
+ # it's necessary to extend the unlock time for keychain (default: 300s),
127
+ # otherwise it will get stuck in codesign stage when it's locked again
128
+ security set-keychain-settings -lut 1800 build.keychain
129
+ security unlock-keychain -p $MACOS_KEYCHAIN_PASSWORD build.keychain
130
+ security show-keychain-info build.keychain
131
+ security import certificate.p12 -k build.keychain -P $MACOS_CERTIFICATE_PWD -T /usr/bin/codesign
132
+ security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $MACOS_KEYCHAIN_PASSWORD build.keychain
113
133
114
134
- name : Compile (Build) project
115
135
if : ${{matrix.cfg.build == 'qmake' }}
@@ -119,27 +139,29 @@ jobs:
119
139
make -j10
120
140
121
141
- name : Compile (Build) project
122
- if : ${{matrix.cfg.build == 'cmake' }}
142
+ if : ${{matrix.cfg.build == 'cmake'}}
143
+ env :
144
+ MACOS_CERTIFICATE : ${{ secrets.DEVELOPMENT_CERTIFICATE_DATA }}
145
+ MACOS_CERTIFICATE_PWD : ${{ secrets.DEVELOPMENT_CERTIFICATE_PASSPHRASE }}
146
+ MACOS_KEYCHAIN_PASSWORD : ${{ secrets.KEYCHAIN_PASSWORD }}
123
147
run : |
124
148
cd build
125
- cmake --build . --target Swiftray -- -j 6
149
+ if [ ${{ matrix.cfg.dist }} = true ] ; then
150
+ cmake --build . --target swiftray_app_bundle -- -j 6
151
+ else
152
+ cmake --build . --target Swiftray -- -j 6
153
+ fi
126
154
127
- # - name: If install is needed
128
- # if: ${{matrix.cfg.build == 'cmake' }}
155
+ # - name: Deploy (Copy necessary shared libraries)
129
156
# run: |
130
157
# cd build
131
- # cmake --install .
132
-
133
- - name : Deploy (Copy necessary shared libraries)
134
- run : |
135
- cd build
136
- $RUNNER_WORKSPACE/Qt/5.15.2/clang_64/bin/macdeployqt Swiftray.app -qmldir=${{ github.workspace }}/src/windows/qml -verbose=2
158
+ # $RUNNER_WORKSPACE/Qt/5.15.2/clang_64/bin/macdeployqt Swiftray.app -qmldir=${{ github.workspace }}/src/windows/qml -verbose=2
137
159
138
- - name : Workaround for libxcb dependencies
139
- run : |
140
- cd build/Swiftray.app/Contents/Frameworks
141
- install_name_tool -change /usr/local/Cellar/libxcb/1.15/lib/libxcb.1.dylib @executable_path/../Frameworks/libxcb.1.dylib libxcb-shm.0.dylib
142
- install_name_tool -change /usr/local/Cellar/libxcb/1.15/lib/libxcb.1.dylib @executable_path/../Frameworks/libxcb.1.dylib libxcb-render.0.dylib
160
+ # - name: Workaround for libxcb dependencies
161
+ # run: |
162
+ # cd build/Swiftray.app/Contents/Frameworks
163
+ # install_name_tool -change /usr/local/Cellar/libxcb/1.15/lib/libxcb.1.dylib @executable_path/../Frameworks/libxcb.1.dylib libxcb-shm.0.dylib
164
+ # install_name_tool -change /usr/local/Cellar/libxcb/1.15/lib/libxcb.1.dylib @executable_path/../Frameworks/libxcb.1.dylib libxcb-render.0.dylib
143
165
144
166
- name : Select XCode version (workaround for codesign fail)
145
167
if : ${{matrix.cfg.build == 'qmake' }}
@@ -173,26 +195,10 @@ jobs:
173
195
sentry-cli upload-dif -o flux3dp -p swiftray *.dSYM
174
196
cd ${{ github.workspace }}
175
197
cd build
176
- dsymutil Swiftray.app/Contents/MacOS/Swiftray
177
- sentry-cli upload-dif -o flux3dp -p swiftray Swiftray.app/Contents/MacOS/Swiftray.dSYM
178
-
179
- - name : Codesign executable
180
- if : ${{ matrix.cfg.dist }}
181
- env :
182
- MACOS_CERTIFICATE : ${{ secrets.DEVELOPMENT_CERTIFICATE_DATA }}
183
- MACOS_CERTIFICATE_PWD : ${{ secrets.DEVELOPMENT_CERTIFICATE_PASSPHRASE }}
184
- MACOS_KEYCHAIN_PASSWORD : ${{ secrets.KEYCHAIN_PASSWORD }}
185
- # SIGN_IDENTITY_ID:
186
- run : |
187
- echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12
188
- security create-keychain -p $MACOS_KEYCHAIN_PASSWORD build.keychain
189
- security default-keychain -s build.keychain
190
- security unlock-keychain -p $MACOS_KEYCHAIN_PASSWORD build.keychain
191
- security import certificate.p12 -k build.keychain -P $MACOS_CERTIFICATE_PWD -T /usr/bin/codesign
192
- security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $MACOS_KEYCHAIN_PASSWORD build.keychain
193
- cd build
194
- /usr/bin/codesign --force --deep --verify --verbose --timestamp --options runtime --sign "Developer ID Application: FLUX TECHNOLOGY CORP. (4Y92JWKV94)" "Swiftray.app/Contents/MacOS/crashpad_handler"
195
- /usr/bin/codesign --force --deep --verify --verbose --timestamp --options runtime --sign "Developer ID Application: FLUX TECHNOLOGY CORP. (4Y92JWKV94)" "Swiftray.app"
198
+ dsymutil --minimize --out Swiftray.dSYM Swiftray.app/Contents/MacOS/Swiftray
199
+ #dsymutil Swiftray.app/Contents/MacOS/Swiftray
200
+ #sentry-cli upload-dif -o flux3dp -p swiftray Swiftray.app/Contents/MacOS/Swiftray.dSYM
201
+ sentry-cli upload-dif -o flux3dp -p swiftray Swiftray.dSYM
196
202
197
203
- name : Notarize Release Build
198
204
if : ${{ matrix.cfg.dist }}
@@ -212,8 +218,12 @@ jobs:
212
218
with :
213
219
product-path : " build/Swiftray.app"
214
220
215
- - name : Create dmg
221
+ - name : Create dmg and Sign the dmg
216
222
if : ${{ matrix.cfg.dist }}
223
+ env :
224
+ MACOS_CERTIFICATE : ${{ secrets.DEVELOPMENT_CERTIFICATE_DATA }}
225
+ MACOS_CERTIFICATE_PWD : ${{ secrets.DEVELOPMENT_CERTIFICATE_PASSPHRASE }}
226
+ MACOS_KEYCHAIN_PASSWORD : ${{ secrets.KEYCHAIN_PASSWORD }}
217
227
run : |
218
228
brew install create-dmg
219
229
cd build
@@ -225,11 +235,22 @@ jobs:
225
235
--icon "Swiftray.app" 200 190 \
226
236
--hide-extension "Swiftray.app" \
227
237
--app-drop-link 600 190 \
228
- "Swiftray-Installer .dmg" \
238
+ swiftray_installer .dmg \
229
239
"Swiftray.app/"
230
-
240
+
241
+ tag_version=${{ github.ref_name }}
242
+ tag_version=${tag_version:1} # strip the first char 'v'
243
+ echo ${tag_version}
244
+
245
+ security unlock-keychain -p $MACOS_KEYCHAIN_PASSWORD build.keychain
246
+ /usr/bin/codesign --sign "Developer ID Application: FLUX TECHNOLOGY CORP. (4Y92JWKV94)" \
247
+ --options runtime \
248
+ --timestamp \
249
+ --verbose \
250
+ swiftray_installer.dmg
251
+
231
252
- name : Create Github Release
232
253
if : ${{ matrix.cfg.dist }} && startsWith(github.ref, 'refs/tags/')
233
254
uses : softprops/action-gh-release@v1
234
255
with :
235
- files : build/Swiftray-Installer .dmg
256
+ files : build/swiftray_installer .dmg
0 commit comments