Added fallback URL scheme for merchants #4090
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: [pull_request] | |
concurrency: | |
group: tests-${{ github.event.number }} | |
cancel-in-progress: true | |
jobs: | |
unit_test_job: | |
name: Unit | |
runs-on: macOS-14-xlarge | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
- name: Use Xcode 15.0.1 | |
run: sudo xcode-select -switch /Applications/Xcode_15.0.1.app | |
- name: Install Package dependencies | |
run: swift package resolve | |
- name: Install CocoaPod dependencies | |
run: pod install | |
- name: Run Unit Tests | |
run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Debug' -scheme 'UnitTests' -destination 'platform=iOS Simulator,name=iPhone 15' test | ./Pods/xcbeautify/xcbeautify | |
ui_test_job: | |
name: UI | |
runs-on: macOS-14-xlarge | |
timeout-minutes: 20 # Add overall job timeout | |
strategy: | |
matrix: | |
test-suite: | |
- ThreeDSecure_V2_UITests | |
- PayPal_Checkout_UITests | |
- PayPal_Vault_UITests | |
- Venmo_UITests | |
fail-fast: false # Continue running other test suites if one fails | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
- name: Use Xcode 15.0.1 | |
run: sudo xcode-select -switch /Applications/Xcode_15.0.1.app | |
- name: Install CocoaPod dependencies | |
run: pod install | |
- name: Boot Simulator | |
run: | | |
# Boot simulator ahead of time to reduce test startup time | |
xcrun simctl boot "iPhone 15" || true | |
# Wait for simulator to boot | |
xcrun simctl bootstatus "iPhone 15" -b || true | |
# Disable hardware keyboard to avoid input issues | |
defaults write com.apple.iphonesimulator ConnectHardwareKeyboard -bool false | |
- name: Clean Simulator State | |
run: | | |
# Reset simulator state to ensure clean environment | |
xcrun simctl shutdown all || true | |
xcrun simctl erase all || true | |
xcrun simctl boot "iPhone 15" || true | |
xcrun simctl bootstatus "iPhone 15" -b || true | |
- name: Run UI Tests - ${{ matrix.test-suite }} | |
id: test_attempt_1 | |
continue-on-error: true | |
run: | | |
set -o pipefail | |
xcodebuild \ | |
-workspace 'Braintree.xcworkspace' \ | |
-sdk 'iphonesimulator' \ | |
-configuration 'Release' \ | |
-scheme 'UITests' \ | |
-destination 'name=iPhone 15,OS=17.2,platform=iOS Simulator' \ | |
-only-testing:UITests/${{ matrix.test-suite }} \ | |
-maximum-concurrent-test-simulator-destinations 1 \ | |
-disable-concurrent-testing \ | |
test | ./Pods/xcbeautify/xcbeautify | |
- name: Retry UI Tests (if failed) - ${{ matrix.test-suite }} | |
if: steps.test_attempt_1.outcome == 'failure' | |
id: test_attempt_2 | |
continue-on-error: true | |
run: | | |
echo "First attempt failed, retrying..." | |
# Clean simulator state before retry | |
xcrun simctl shutdown all || true | |
xcrun simctl erase all || true | |
xcrun simctl boot "iPhone 15" || true | |
xcrun simctl bootstatus "iPhone 15" -b || true | |
set -o pipefail | |
xcodebuild \ | |
-workspace 'Braintree.xcworkspace' \ | |
-sdk 'iphonesimulator' \ | |
-configuration 'Release' \ | |
-scheme 'UITests' \ | |
-destination 'name=iPhone 15,OS=17.2,platform=iOS Simulator' \ | |
-only-testing:UITests/${{ matrix.test-suite }} \ | |
-maximum-concurrent-test-simulator-destinations 1 \ | |
-disable-concurrent-testing \ | |
test | ./Pods/xcbeautify/xcbeautify | |
- name: Final UI Test Result - ${{ matrix.test-suite }} | |
if: steps.test_attempt_1.outcome == 'failure' | |
run: | | |
if [ "${{ steps.test_attempt_2.outcome }}" == "failure" ]; then | |
echo "UI Tests failed after retry" | |
exit 1 | |
else | |
echo "UI Tests passed on retry" | |
fi | |
integration_test_job: | |
name: Integration | |
runs-on: macOS-14-xlarge | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
- name: Use Xcode 15.0.1 | |
run: sudo xcode-select -switch /Applications/Xcode_15.0.1.app | |
- name: Install Package dependencies | |
run: swift package resolve | |
- name: Install CocoaPod dependencies | |
run: pod install | |
- name: Run Integration Tests | |
run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=17.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify |