Skip to content

πŸš€ Publish Demo App (TestFlight) #251

πŸš€ Publish Demo App (TestFlight)

πŸš€ Publish Demo App (TestFlight) #251

name: πŸš€ Publish Demo App (TestFlight)
on:
workflow_dispatch:
inputs:
branch:
description: "Branch to publish"
required: true
default: "develop"
workflow_call:
secrets: # When triggered via another workflow, secrets are not automatically forwarded
BUILD_CERTIFICATE_BASE64:
required: true
DEVELOPMENT_CERTIFICATE_BASE64:
required: true
P12_PASSWORD:
required: true
BUILD_PROVISION_PROFILE_BASE64:
required: true
KEYCHAIN_PASSWORD:
required: true
DEMO_APP_TEST_ENV_CLIENT_KEY:
required: true
DEMO_SERVER_TEST_ENV_API_KEY:
required: true
MERCHANT_ACCOUNT:
required: true
APPLE_DEVELOPMENT_TEAM_ID:
required: true
ENVIRONMENT:
required: true
APPLE_ID_USERNAME:
required: true
APPLE_APP_SPECIFIC_PASSWORD:
required: true
XCODE_AUTHENTICATION_KEY_ID:
required: true
XCODE_AUTHENTICATION_KEY_ISSUER_ID:
required: true
XCODE_AUTHENTICATION_KEY_BASE64:
required: true
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
publish:
runs-on: macos-15-xlarge
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Select latest Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '16.4'
- name: βš™οΈ Configure Demo App
env:
ENVIRONMENT: ${{ secrets.ENVIRONMENT }}
run: |
sed -i '' "s/static let demoServerEnvironment.*=.*/static let demoServerEnvironment = DemoCheckoutAPIEnvironment.$ENVIRONMENT/g" ./Demo/Configuration.swift
sed -i '' "s/static let classicAPIEnvironment.*=.*/static let classicAPIEnvironment = DemoClassicAPIEnvironment.$ENVIRONMENT/g" ./Demo/Configuration.swift
sed -i '' "s/static let componentsEnvironment.*=.*/static let componentsEnvironment = Environment.$ENVIRONMENT/g" ./Demo/Configuration.swift
- name: πŸš€ Publish Demo App
env:
# Apple credentials
APPLE_ID_USERNAME: ${{ secrets.APPLE_ID_USERNAME }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
# Xcode signing key
XCODE_AUTHENTICATION_KEY_ID: ${{ secrets.XCODE_AUTHENTICATION_KEY_ID }}
XCODE_AUTHENTICATION_KEY_ISSUER_ID: ${{ secrets.XCODE_AUTHENTICATION_KEY_ISSUER_ID }}
XCODE_AUTHENTICATION_KEY_BASE64: ${{ secrets.XCODE_AUTHENTICATION_KEY_BASE64 }}
# Build certificates & profiles
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
DEVELOPMENT_CERTIFICATE_BASE64: ${{ secrets.DEVELOPMENT_CERTIFICATE_BASE64 }}
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
# App configuration
MERCHANT_CLIENT_KEY: ${{ secrets.DEMO_APP_TEST_ENV_CLIENT_KEY }}
MERCHANT_SERVER_HOST: ${{ secrets.MERCHANT_SERVER_HOST }}
MERCHANT_ACCOUNT: ${{ secrets.MERCHANT_ACCOUNT }}
ADYEN_SERVER_API_KEY: ${{ secrets.DEMO_SERVER_TEST_ENV_API_KEY }}
APPLE_TEAM_IDENTIFIER: ${{ secrets.APPLE_DEVELOPMENT_TEAM_ID }}
ENVIRONMENT: ${{ secrets.ENVIRONMENT }}
run: |
chmod +x ./Scripts/publish-demo-app.sh
./Scripts/publish-demo-app.sh