Skip to content

Merge pull request #751 from gini/PP-141_change_timeout #649

Merge pull request #751 from gini/PP-141_change_timeout

Merge pull request #751 from gini/PP-141_change_timeout #649

name: Publish GiniHealthSDKExample to App Center
on:
push:
paths:
- 'HealthSDK/**'
- 'HealthAPILibrary/**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-publish
cancel-in-progress: ${{ !contains(github.ref, 'refs/tags/')}}
jobs:
check:
uses: ./.github/workflows/health-sdk.check.yml
secrets:
GINI_MOBILE_TEST_CLIENT_SECRET: ${{ secrets.GINI_MOBILE_TEST_CLIENT_SECRET }}
upload-version:
needs: check
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: maxim-lobanov/[email protected]
with:
xcode-version: '15.3'
- name: Setup provisioning profile
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.GINI_DISTRIBUTION_CERTIFICATE }}
P12_PASSWORD: ${{ secrets.GINI_DISTRIBUTION_CERTIFICATE_SECRET }}
BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.GINI_HEALTH_SDK_EXAMPLE_APP_ADHOC_DISTRIBUTION_PROVISION_PROFILE }}
KEYCHAIN_PASSWORD: ${{ secrets.GINI_DISTRIBUTION_CERTIFICATE_SECRET }}
run: |
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: Setup Manual Signing for Xcode project
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2.0'
bundler-cache: true
- uses: maierj/[email protected]
with:
lane: 'setup_manual_signing'
options: >
{
"project_path":"HealthSDK/GiniHealthSDKExample/GiniHealthSDKExample.xcodeproj",
"team_id":"JA825X8F7Z",
"target":"GiniHealthSDKExample",
"bundle_identifier": "net.gini.healthsdk.example",
"profile_name": "Gini Health SDK Example App Ad-Hoc Distribution",
"entitlements_file_path": "GiniHealthSDKExample/GiniHealthSDKExample.entitlements",
"ci": "true"
}
- name: Setup Credentials
run: |
sed -i '' \
-e 's/clientID = "client_id"/clientID = "gini-mobile-test"/' \
-e 's/clientPassword = "client_password"/clientPassword = "${{ secrets.GINI_MOBILE_TEST_CLIENT_SECRET }}"/' \
HealthSDK/GiniHealthSDKExample/GiniHealthSDKExample/CredentialsManager.swift
- name: Archiving project
run: |
xcodebuild clean archive \
-workspace GiniMobile.xcworkspace \
-scheme "GiniHealthSDKExample" \
-archivePath ./GiniHealthSDKExample.xcarchive \
-configuration Release \
-destination generic/platform=iOS \
CODE_SIGN_IDENTITY="Apple Distribution" \
CODE_SIGNING_REQUIRED=NO \
ONLY_ACTIVE_ARCH=NO \
CODE_SIGN_STYLE=Manual \
DEVELOPMENT_TEAM=JA825X8F7Z
- name: Exporting .ipa
run: |
xcodebuild \
-exportArchive \
-archivePath GiniHealthSDKExample.xcarchive \
-exportPath . \
-exportOptionsPlist ExportOptionsHealthExample.plist \
-destination "generic/platform=iOS" \
CODE_SIGNING_REQUIRED=YES \
ONLY_ACTIVE_ARCH=NO \
CODE_SIGN_STYLE=Manual
- name: Check file existence
uses: andstor/file-existence-action@v3
with:
files: "*.ipa"
- name: Install appcenter-cli
run: |
npm install -g appcenter-cli
- name: Distribute ipa to App Center
uses: akiojin/[email protected]
with:
token: ${{ secrets.GINI_HEALTH_SDK_EXAMPLE_APPCENTER_API_TOKEN }}
path: GiniHealthSDKExample.ipa
app: Gini-Team-Organization/Business-Example
group: 'Public'
release_notes: ${{ format('{{ {0} {1} }}', github.ref, github.sha) }}