Page MenuHomePhabricator

D4621.id15234.diff
No OneTemporary

D4621.id15234.diff

diff --git a/.github/workflows/ios_xctest.yml b/.github/workflows/ios_xctest.yml
new file mode 100644
--- /dev/null
+++ b/.github/workflows/ios_xctest.yml
@@ -0,0 +1,73 @@
+name: iOS XCTests
+
+on:
+ push:
+ branches: [master]
+ paths-ignore:
+ - 'landing/**'
+ - 'web/**'
+ - 'docs/**'
+ - 'keyserver/**'
+
+jobs:
+ build:
+ name: Run iOS XCTests
+ runs-on: macos-12
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Install the Apple certificate and provisioning profile
+ env:
+ BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
+ P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
+ BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
+ KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
+ run: |
+ # create variables
+ CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
+ PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
+ KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
+
+ # import certificate and provisioning profile from secrets
+ echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH
+ echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode --output $PP_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
+
+ # apply provisioning profile
+ mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
+ cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
+
+ - name: npm install -g yarn
+ run: npm install -g yarn
+
+ - name: yarn --frozen-lockfile
+ run: yarn --frozen-lockfile
+
+ - name: Save auth_key to file
+ working-directory: ./native/ios
+ env:
+ AUTH_KEY: ${{secrets.AUTH_KEY}}
+ run: echo "$AUTH_KEY" > AUTH_KEY.p8
+
+ - name: Archive
+ working-directory: ./native/ios
+ env:
+ AUTH_KEY_ID: ${{secrets.AUTH_KEY_ID}}
+ AUTH_KEY_ISSUER_ID: ${{secrets.AUTH_KEY_ISSUER_ID}}
+ run: xcodebuild ENABLE_TESTABILITY=YES test -workspace Comm.xcworkspace -scheme Comm -destination name="iPhone 13 Pro" -configuration Release -authenticationKeyIssuerID "$AUTH_KEY_ISSUER_ID" -authenticationKeyID "$AUTH_KEY_ID" -authenticationKeyPath $PWD/AUTH_KEY.p8
+
+ - name: Clean up keychain and provisioning profile
+ if: ${{ always() }}
+ run: |
+ rm ~/Library/MobileDevice/Provisioning\ Profiles/build_pp.mobileprovision
+ security delete-keychain $RUNNER_TEMP/app-signing.keychain-db

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 21, 5:57 PM (20 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2683492
Default Alt Text
D4621.id15234.diff (2 KB)

Event Timeline