diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index d42501b1b4..86fc4fc1e3 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -184,6 +184,7 @@ jobs: needs: determine-builds if: needs.determine-builds.outputs.build-desktop == 'true' permissions: + id-token: write contents: write actions: read strategy: @@ -208,6 +209,26 @@ jobs: # NOTE: persist-credentials is needed for tauri-action to create GitHub releases. persist-credentials: true # zizmor: ignore[artipacked] + - name: Configure AWS credentials + if: startsWith(matrix.platform, 'macos-') + uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 + with: + role-to-assume: ${{ secrets.AWS_OIDC_ROLE_ARN }} + aws-region: us-east-2 + + - name: Get AWS Secrets + if: startsWith(matrix.platform, 'macos-') + uses: aws-actions/aws-secretsmanager-get-secrets@a9a7eb4e2f2871d30dc5b892576fde60a2ecc802 + with: + secret-ids: | + APPLE_ID, deploy/apple-id + APPLE_PASSWORD, deploy/apple-password + APPLE_CERTIFICATE, deploy/apple-certificate + APPLE_CERTIFICATE_PASSWORD, deploy/apple-certificate-password + KEYCHAIN_PASSWORD, deploy/keychain-password + APPLE_TEAM_ID, deploy/apple-team-id + parse-json-secrets: true + - name: install dependencies (ubuntu only) if: startsWith(matrix.platform, 'ubuntu-') run: | @@ -302,9 +323,33 @@ jobs: Write-Host "Versions set to: $VERSION" + - name: Import Apple Developer Certificate + if: startsWith(matrix.platform, 'macos-') + run: | + echo $APPLE_CERTIFICATE | base64 --decode > certificate.p12 + security create-keychain -p "$KEYCHAIN_PASSWORD" build.keychain + security default-keychain -s build.keychain + security unlock-keychain -p "$KEYCHAIN_PASSWORD" build.keychain + security set-keychain-settings -t 3600 -u build.keychain + security import certificate.p12 -k build.keychain -P "$APPLE_CERTIFICATE_PASSWORD" -T /usr/bin/codesign + security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" build.keychain + security find-identity -v -p codesigning build.keychain + + - name: Verify Certificate + if: startsWith(matrix.platform, 'macos-') + run: | + CERT_INFO=$(security find-identity -v -p codesigning build.keychain | grep -E "(Developer ID Application|Apple Distribution|Apple Development)" | head -n 1) + CERT_ID=$(echo "$CERT_INFO" | awk -F'"' '{print $2}') + echo "CERT_ID=$CERT_ID" >> $GITHUB_ENV + echo "Certificate imported." + - uses: tauri-apps/tauri-action@73fb865345c54760d875b94642314f8c0c894afa # ratchet:tauri-apps/tauri-action@action-v0.6.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + APPLE_ID: ${{ env.APPLE_ID }} + APPLE_PASSWORD: ${{ env.APPLE_PASSWORD }} + APPLE_SIGNING_IDENTITY: ${{ env.CERT_ID }} + APPLE_TEAM_ID: ${{ env.APPLE_TEAM_ID }} with: tagName: ${{ needs.determine-builds.outputs.is-test-run != 'true' && 'v__VERSION__' || format('v0.0.0-dev+{0}', needs.determine-builds.outputs.short-sha) }} releaseName: ${{ needs.determine-builds.outputs.is-test-run != 'true' && 'v__VERSION__' || format('v0.0.0-dev+{0}', needs.determine-builds.outputs.short-sha) }} diff --git a/desktop/src-tauri/tauri.conf.json b/desktop/src-tauri/tauri.conf.json index fc7a4ded0d..c482cf0f70 100644 --- a/desktop/src-tauri/tauri.conf.json +++ b/desktop/src-tauri/tauri.conf.json @@ -52,7 +52,7 @@ "entitlements": null, "exceptionDomain": "cloud.onyx.app", "minimumSystemVersion": "10.15", - "signingIdentity": "-", + "signingIdentity": null, "dmg": { "windowSize": { "width": 660,