Skip to content

Commit 6353789

Browse files
committed
Setup GHA codesigning
1 parent 6ef322f commit 6353789

File tree

1 file changed

+65
-22
lines changed

1 file changed

+65
-22
lines changed

.github/workflows/app_build.yml

Lines changed: 65 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -191,33 +191,64 @@ jobs:
191191
rm /usr/local/lib/pkgconfig/libcrypto.pc
192192
rm /usr/local/lib/pkgconfig/libssl.pc
193193
rm /usr/local/lib/pkgconfig/openssl.pc
194-
195-
echo "Installing IFW"
196-
curl -L -O https://download.qt.io/official_releases/qt-installer-framework/4.6.1/QtInstallerFramework-macOS-x64-4.6.1.dmg
197-
hdiutil attach -mountpoint ./qtfiw_installer QtInstallerFramework-macOS-x64-4.6.1.dmg
198-
echo "ls ./qtfiw_installer"
199-
ls ./qtfiw_installer
200-
echo "ls ./qtfiw_installer/QtInstallerFramework-macOS-x64-4.6.1.app/"
201-
ls ./qtfiw_installer/QtInstallerFramework-macOS-x64-4.6.1.app/
202-
echo "ls ./qtfiw_installer/QtInstallerFramework-macOS-x64-4.6.1.app/Contents/"
203-
ls ./qtfiw_installer/QtInstallerFramework-macOS-x64-4.6.1.app/Contents/
204-
echo "ls ./qtfiw_installer/QtInstallerFramework-macOS-x64-4.6.1.app/Contents/MacOS"
205-
ls ./qtfiw_installer/QtInstallerFramework-macOS-x64-4.6.1.app/Contents/MacOS
206-
echo "ls ./qtfiw_installer/QtInstallerFramework-macOS-x64-4.6.1.app/Contents/Resources"
207-
ls ./qtfiw_installer/QtInstallerFramework-macOS-x64-4.6.1.app/Contents/Resources
208-
209-
sudo ./qtfiw_installer/QtInstallerFramework-macOS-x64-4.6.1.app/Contents/MacOS/QtInstallerFramework-macOS-x64-4.6.1 --verbose --script ./ci/install_script_qtifw.qs
210-
ls ~
211-
ls ~/Qt/ || true
212-
ls ~/Qt/QtIFW-4.6.1 || true
213-
echo "~/Qt/QtIFW-4.6.1/bin/" >> $GITHUB_PATH
214194
fi;
215195
fi;
216196
217197
cmake --version
218198
ccache --show-config || true
219199
ccache --zero-stats || true
220200
201+
- name: "Configure for codesigning"
202+
if: runner.os == 'macOS'
203+
run: |
204+
set -x
205+
cd $RUNNER_TEMP
206+
mkdir codesigning && cd codesigning
207+
# ----- Create certificate files from secrets base64 -----
208+
echo "${{ secrets.MACOS_DEVELOPER_ID_APPLICATION_CERTIFICATE_P12_BASE64 }}" | base64 --decode > certificate_application.p12
209+
echo "${{ secrets.MACOS_DEVELOPER_ID_INSTALLER_CERTIFICATE_P12_BASE64 }}" | base64 --decode > certificate_installer.p12
210+
211+
# ----- Configure Keychain -----
212+
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
213+
security create-keychain -p "${{ secrets.MACOS_KEYCHAIN_PASSWORD }}" $KEYCHAIN_PATH
214+
# Unlock it for 6 hours
215+
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
216+
security unlock-keychain -p "${{ secrets.MACOS_KEYCHAIN_PASSWORD }}" $KEYCHAIN_PATH
217+
218+
# ----- Import certificates on Keychain -----
219+
security import certificate_application.p12 -P '${{ secrets.MACOS_DEVELOPER_ID_APPLICATION_CERTIFICATE_P12_PASSWORD }}' -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
220+
security import certificate_installer.p12 -P '${{ secrets.MACOS_DEVELOPER_ID_INSTALLER_CERTIFICATE_P12_PASSWORD }}' -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
221+
security list-keychain -d user -s $KEYCHAIN_PATH
222+
security find-identity -vvvv $KEYCHAIN_PATH
223+
224+
# Add needed intermediary certificates
225+
aria2c https://www.apple.com/certificateauthority/AppleWWDRCAG2.cer
226+
aria2c https://www.apple.com/certificateauthority/DeveloperIDG2CA.cer
227+
security import AppleWWDRCAG2.cer -k $KEYCHAIN_PATH
228+
security import DeveloperIDG2CA.cer -k $KEYCHAIN_PATH
229+
security find-identity -vvvv $KEYCHAIN_PATH
230+
security find-identity -v -p codesigning
231+
232+
# Store AppConnect credentials
233+
echo "${{ secrets.NOTARIZATION_API_KEY }}" > AppConnect_Developer_API_Key.p8
234+
xcrun notarytool store-credentials OpenStudioApplication \
235+
--key AppConnect_Developer_API_Key.p8 \
236+
--key-id ${{ secrets.NOTARIZATION_API_TEAM_ID }} \
237+
--issuer ${{ secrets.NOTARIZATION_API_ISSUER_ID }} \
238+
--keychain $KEYCHAIN_PATH
239+
240+
cd .. && rm -Rf codesigning
241+
242+
# Download my patched QtIFW
243+
mkdir QtIFW && cd QtIFW
244+
aria2c https://github.com/jmarrec/QtIFW-fixup/releases/download/v5.0.0-dev-with-fixup/QtIFW-5.0.0-${{ matrix.arch }}.zip
245+
xattr -r -d com.apple.quarantine ./QtIFW-5.0.0-${{ matrix.arch }}.zip
246+
unzip QtIFW-5.0.0-${{ matrix.arch }}.zip
247+
rm -Rf ./*.zip
248+
chmod +x *
249+
./installerbase --version
250+
echo "$(pwd)" >> $GITHUB_PATH
251+
221252
- name: Install conan
222253
shell: bash
223254
run: |
@@ -488,12 +519,24 @@ jobs:
488519
-DANALYTICS_MEASUREMENT_ID:STRING=${{ secrets.ANALYTICS_MEASUREMENT_ID }} -Dopenstudio_DIR:PATH=$OS_DIR
489520
fi
490521
491-
cmake --preset conan-release -DQT_INSTALL_DIR:PATH=${{ env.QT_INSTALL_DIR }} \
522+
if [ "$RUNNER_OS" == "macOS" ]; then
523+
cmake --preset conan-release -DQT_INSTALL_DIR:PATH=${{ env.QT_INSTALL_DIR }} \
492524
-DBUILD_DOCUMENTATION:BOOL=${{ env.BUILD_DOCUMENTATION }} \
493525
-DBUILD_PACKAGE:BOOL=${{ env.BUILD_PACKAGE }} \
494526
-DCPACK_BINARY_TGZ:BOOL=ON \
495527
-DANALYTICS_API_SECRET:STRING=${{ secrets.ANALYTICS_API_SECRET }} \
496-
-DANALYTICS_MEASUREMENT_ID:STRING=${{ secrets.ANALYTICS_MEASUREMENT_ID }}
528+
-DANALYTICS_MEASUREMENT_ID:STRING=${{ secrets.ANALYTICS_MEASUREMENT_ID }} \
529+
-DCPACK_CODESIGNING_DEVELOPPER_ID_APPLICATION:STRING="Developer ID Application: The Energy Coalition (UG9S5ZLM34)" \
530+
-DCPACK_CODESIGNING_NOTARY_PROFILE_NAME:STRING=OpenStudioApplication \
531+
-DCPACK_CODESIGNING_MACOS_IDENTIFIER:STRING=org.openstudiocoalition.OpenStudioApplication
532+
else
533+
cmake --preset conan-release -DQT_INSTALL_DIR:PATH=${{ env.QT_INSTALL_DIR }} \
534+
-DBUILD_DOCUMENTATION:BOOL=${{ env.BUILD_DOCUMENTATION }} \
535+
-DBUILD_PACKAGE:BOOL=${{ env.BUILD_PACKAGE }} \
536+
-DCPACK_BINARY_TGZ:BOOL=ON \
537+
-DANALYTICS_API_SECRET:STRING=${{ secrets.ANALYTICS_API_SECRET }} \
538+
-DANALYTICS_MEASUREMENT_ID:STRING=${{ secrets.ANALYTICS_MEASUREMENT_ID }}
539+
fi;
497540
cmake --build --preset conan-release --target package
498541
# Delete conan build and source folders
499542
conan cache clean --source --build --download --temp

0 commit comments

Comments
 (0)