@@ -2,16 +2,13 @@ name: 'deploy'
22
33on :
44 workflow_dispatch :
5- push :
6- branches :
7- - feat/macos-deployment
85
96jobs :
107 deploy-macos-app :
118 runs-on : macos-latest
129 env :
13- VITE_MOCK_DATA : false
14- VITE_FREECODECAMP_API : https://test-api.freecodecamp.dev
10+ VITE_MOCK_DATA : ${{ vars.VITE_MOCK_DATA }}
11+ VITE_FREECODECAMP_API : ${{ vars.VITE_FREECODECAMP_API }}
1512 SENTRY_DSN : ${{ secrets.SENTRY_DSN }}
1613 steps :
1714 - uses : actions/checkout@v4
2926 - name : install Rust stable
3027 uses : dtolnay/rust-toolchain@stable
3128
29+ - name : Install Rust targets
30+ run : rustup target add aarch64-apple-darwin x86_64-apple-darwin
31+
3232 - name : install codemagic cli tools
3333 run : pip3 install codemagic-cli-tools --break-system-packages
3434
3737 KEYCHAIN_PASSWORD : ${{ secrets.KEYCHAIN_PASSWORD }}
3838 APPLE_DISTRIBUTION_CERT : ${{ secrets.APPLE_DISTRIBUTION_CERT }}
3939 MAC_INSTALLER_DISTRIBUTION_CERT : ${{ secrets.MAC_INSTALLER_DISTRIBUTION_CERT }}
40- PROVISIONING_PROFILE : ${{ secrets.PROVISIONING_PROFILE }}
40+ MAC_APP_STORE_PROVISIONING_PROFILE : ${{ secrets.MAC_APP_STORE_PROVISIONING_PROFILE }}
4141 APPLE_API_KEY_ID : ${{ secrets.APPLE_API_KEY_ID }}
4242 APPLE_API_KEY : ${{ secrets.APPLE_API_KEY }}
4343 run : |
@@ -54,32 +54,46 @@ jobs:
5454 # import certificate and provisioning profile from secrets
5555 echo -n "$APPLE_DISTRIBUTION_CERT" | base64 --decode -o $DISTRIBUTION_CERT_PATH
5656 echo -n "$MAC_INSTALLER_DISTRIBUTION_CERT" | base64 --decode -o $MAC_INSTALLER_DISTRIBUTION_CERT_PATH
57- echo -n "$PROVISIONING_PROFILE " | base64 --decode -o $PP_PATH
57+ echo -n "$MAC_APP_STORE_PROVISIONING_PROFILE " | base64 --decode -o $PP_PATH
5858 echo -n "$APPLE_API_KEY" | base64 --decode -o $APPLE_API_KEY_PATH
5959
6060 # create temporary keychain
6161 keychain initialize --password $KEYCHAIN_PASSWORD --path $KEYCHAIN_PATH --timeout 21600
6262
6363 # import certificate to keychain
64- keychain add-certificates
65- security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
64+ keychain add-certificates -A
65+ security set-key-partition-list -S apple-tool:,apple:, -s -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
6666 security find-identity -v
6767
6868 - name : install frontend dependencies
6969 run : pnpm install && pnpm run prisma-generate
7070
71+ # The rust build requires the `.env` file to exist, even if none of the variables are used
72+ - name : prep env
73+ run : cp sample.env .env
74+
7175 - uses : tauri-apps/tauri-action@v0
7276 env :
7377 TAURI_SIGNING_PRIVATE_KEY : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
7478 TAURI_SIGNING_PRIVATE_KEY_PASSWORD : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
79+ APPLE_SIGNING_IDENTITY : ' Apple Distribution: Free Code Camp, Inc. (L33K9LWVP9)'
80+
81+ SENTRY_DSN : ${{ secrets.SENTRY_DSN }}
82+ VITE_FREECODECAMP_API : ${{ vars.VITE_FREECODECAMP_API }}
83+ VITE_MOCK_DATA : ${{ vars.VITE_MOCK_DATA }}
7584 with :
76- args : " --target universal-apple-darwin"
77- # includeUpdaterJson: true
85+ args : ' --target universal-apple-darwin --verbose'
86+ includeDebug : false
87+ includeRelease : true
88+ includeUpdaterJson : true
7889
79- - name : generate and upload installer package
90+ - name : generate installer package
91+ run : |
92+ xcrun productbuild --sign "3rd Party Mac Developer Installer: Free Code Camp, Inc. (L33K9LWVP9)" --component "./src-tauri/target/universal-apple-darwin/release/bundle/macos/Exam Environment.app" /Applications "Exam Environment.pkg"
93+
94+ - name : upload installer package
8095 env :
8196 APPLE_API_KEY_ID : ${{ secrets.APPLE_API_KEY_ID }}
8297 APPLE_API_ISSUER : ${{ secrets.APPLE_API_ISSUER }}
8398 run : |
84- xcrun productbuild --sign "3rd Party Mac Developer Installer: Free Code Camp, Inc. (L33K9LWVP9)" --component "./src-tauri/target/universal-apple-darwin/release/bundle/macos/Exam Environment.app" /Applications "Exam Environment.pkg"
8599 xcrun altool --upload-app --type macos --file "Exam Environment.pkg" --apiKey $APPLE_API_KEY_ID --apiIssuer $APPLE_API_ISSUER
0 commit comments