@@ -20,24 +20,54 @@ jobs:
2020 git_ref : ${{ github.ref }}
2121 secrets : inherit
2222
23- ios-signet-build :
24- name : Build iOS Signet IPA
25- uses : ./.github/workflows/ios-device-build.yml
26- with :
27- variant : signet
28- secrets : inherit
23+ ios-mainnet-archive :
24+ name : Build iOS Mainnet Archive
25+ runs-on : macOS
26+ env :
27+ # Self-hosted runners persist /nix/store; avoid stale Magic Nix Cache hooks/proxies.
28+ NIX_CONFIG : |
29+ post-build-hook =
30+ extra-substituters =
31+ substituters = https://cache.nixos.org/
32+ steps :
33+ - name : 🏗 Checkout repository
34+ uses : actions/checkout@v6
2935
30- ios-mainnet-build :
31- name : Build iOS Mainnet IPA
32- uses : ./.github/workflows/ios-device-build.yml
33- with :
34- variant : mainnet
35- secrets : inherit
36+ - name : 📦 Install dependencies
37+ run : nix develop .# --command bash -c "bun install --frozen-lockfile"
38+
39+ - name : 🔧 Create sentry.properties
40+ env :
41+ SENTRY_AUTH_TOKEN : ${{ secrets.SENTRY_AUTH_TOKEN }}
42+ run : ./scripts/create_sentry_properties.sh
43+
44+ - name : 🛠️ Build development-signed archive
45+ run : nix develop .# --command bash -c "bun client ios:prebuild && bun client build:ios:mainnet:archive"
46+
47+ - name : 📦 Package archive
48+ run : |
49+ tar -czf client/ios/build/noah-mainnet.xcarchive.tar.gz \
50+ -C client/ios/build Noah-mainnet.xcarchive
51+
52+ - name : 📤 Upload archive artifact
53+ uses : actions/upload-artifact@v7
54+ with :
55+ path : client/ios/build/noah-mainnet.xcarchive.tar.gz
56+ archive : false
57+ if-no-files-found : error
58+ retention-days : 90
59+
60+ - name : 🧹 Clean up build artifacts
61+ if : always()
62+ run : |
63+ rm -rf client/ios/build
64+ rm -f client/android/sentry.properties
65+ rm -f client/ios/sentry.properties
3666
3767 release :
3868 name : Create GitHub Release
3969 runs-on : ubuntu-latest
40- needs : [signet-build, mainnet-build, ios-signet-build, ios- mainnet-build ]
70+ needs : [signet-build, mainnet-build, ios-mainnet-archive ]
4171 permissions :
4272 contents : write
4373 steps :
@@ -53,29 +83,13 @@ jobs:
5383 name : ${{ needs.mainnet-build.outputs.apk_artifact_name }}
5484 path : release-assets/mainnet-apk
5585
56- - name : 📥 Download signet IPA artifact
57- uses : actions/download-artifact@v8
58- with :
59- name : ${{ needs.ios-signet-build.outputs.artifact_name }}
60- path : release-assets/signet-ipa
61-
62- - name : 📥 Download mainnet IPA artifact
63- uses : actions/download-artifact@v8
64- with :
65- name : ${{ needs.ios-mainnet-build.outputs.artifact_name }}
66- path : release-assets/mainnet-ipa
67-
6886 - name : 📝 Prepare release assets
6987 run : |
7088 set -euo pipefail
7189 mv "release-assets/signet/${{ needs.signet-build.outputs.apk_filename }}" \
7290 release-assets/noah-signet.apk
7391 mv "release-assets/mainnet-apk/${{ needs.mainnet-build.outputs.apk_filename }}" \
7492 release-assets/noah-mainnet.apk
75- mv "release-assets/signet-ipa/${{ needs.ios-signet-build.outputs.ipa_filename }}" \
76- release-assets/noah-ios-signet.ipa
77- mv "release-assets/mainnet-ipa/${{ needs.ios-mainnet-build.outputs.ipa_filename }}" \
78- release-assets/noah-ios-mainnet.ipa
7993
8094 - name : 🚀 Create GitHub Release
8195 env :
87101 gh release create "${GITHUB_REF_NAME}" \
88102 release-assets/noah-signet.apk \
89103 release-assets/noah-mainnet.apk \
90- release-assets/noah-ios-signet.ipa \
91- release-assets/noah-ios-mainnet.ipa \
92104 --repo "${{ github.repository }}" \
93105 --title "Noah ${release_version}" \
94106 --generate-notes
0 commit comments