From 8118ee29d423cc571527dbff252b6eea1122a4a1 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 17 Feb 2022 16:33:55 -0800 Subject: [PATCH] ci: attempt to codesign on macos --- .github/workflows/ci.yml | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae2725c88..1d4f33d66 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -367,10 +367,9 @@ jobs: - name: Create Package working-directory: ${{ runner.workspace }}/build - env: - BUNDLE_NAME: "Olive.app" shell: bash run: | + BUNDLE_NAME="Olive.app" brew install dylibbundler if [ "${{ matrix.os-arch }}" == "x86_64" ] @@ -400,6 +399,39 @@ jobs: mv Olive.sym "$SYM_DIR" fi + - name: Sign application + working-directory: ${{ runner.workspace }}/build + shell: bash + env: + BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} + P12_PASSWORD: ${{ secrets.P12_PASSWORD }} + KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} + run: | + BUNDLE_NAME="Olive.app" + + # Install certificate + CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 + KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db + + # import certificate from secrets + echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH + + # create temporary keychain + security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security set-keychain-settings -lut 21600 $KEYCHAIN_PATH + security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + + # import certificate to keychain + security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH + security list-keychain -d user -s $KEYCHAIN_PATH + + # HACK: Remove unsignable frameworks + rm -r $BUNDLE_NAME/Contents/Frameworks/QtUiPlugin.framework + rm -r $BUNDLE_NAME/Contents/Frameworks/QtZlib.framework + + # Sign application + codesign --deep --sign "Developer ID Application: Olive Studios LLC" $BUNDLE_NAME + - name: Deploy Packages working-directory: ${{ runner.workspace }}/build shell: bash