diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 70f81cda2..49e2a262d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -576,12 +576,20 @@ jobs: - name: Install Node dependencies run: npm install + + - name: Set up private auth key + run: | + mkdir ~/private_keys + cat << EOF > ~/private_keys/AuthKey_UFD296548T.p8 + ${{ secrets.APP_STORE_CONNECT_AUTH_KEY }} + EOF - name: Build application run: npm run dist:mac env: - APPLE_ID_USERNAME: ${{ secrets.APPLE_ID_USERNAME }} - APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} + APP_STORE_CONNECT_TEAM_ISSUER: ${{ secrets.APP_STORE_CONNECT_TEAM_ISSUER }} + APP_STORE_CONNECT_AUTH_KEY: UFD296548T + APP_STORE_CONNECT_AUTH_KEY_PATH: ~/private_keys/AuthKey_UFD296548T.p8 CSC_FOR_PULL_REQUEST: true - name: Upload .zip artifact diff --git a/scripts/notarize.js b/scripts/notarize.js index d96fbfd9b..3085278d1 100644 --- a/scripts/notarize.js +++ b/scripts/notarize.js @@ -7,15 +7,30 @@ exports.default = async function notarizing(context) { if (electronPlatformName !== "darwin") { return; } - const appleId = process.env.APPLE_ID_USERNAME || process.env.APPLEID; - const appleIdPassword = process.env.APPLE_ID_PASSWORD || `@keychain:AC_PASSWORD`; + const appName = context.packager.appInfo.productFilename; - return await notarize({ - tool: "notarytool", - appBundleId: "com.bitwarden.directory-connector", - appPath: `${appOutDir}/${appName}.app`, - teamId: "LTZ2PFU5D6", - appleId: appleId, - appleIdPassword: appleIdPassword, - }); + if (process.env.APP_STORE_CONNECT_TEAM_ISSUER) { + const appleApiIssuer = process.env.APP_STORE_CONNECT_TEAM_ISSUER; + const appleApiKey = process.env.APP_STORE_CONNECT_AUTH_KEY_PATH; + const appleApiKeyId = process.env.APP_STORE_CONNECT_AUTH_KEY; + return await notarize({ + tool: "notarytool", + appBundleId: "com.bitwarden.directory-connector", + appPath: `${appOutDir}/${appName}.app`, + appleApiIssuer: appleApiIssuer, + appleApiKey: appleApiKey, + appleApiKeyId: appleApiKeyId, + }); + } else { + const appleId = process.env.APPLE_ID_USERNAME || process.env.APPLEID; + const appleIdPassword = process.env.APPLE_ID_PASSWORD || `@keychain:AC_PASSWORD`; + return await notarize({ + tool: "notarytool", + appBundleId: "com.bitwarden.directory-connector", + appPath: `${appOutDir}/${appName}.app`, + teamId: "LTZ2PFU5D6", + appleId: appleId, + appleIdPassword: appleIdPassword, + }); + } };