Check Bank API Library #343
Workflow file for this run
This file contains 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: Check Bank API Library | |
on: | |
pull_request: | |
types: [opened, edited, reopened, synchronize] | |
paths: | |
- 'BankAPILibrary/**' | |
workflow_call: | |
secrets: | |
GINI_MOBILE_TEST_CLIENT_SECRET: | |
required: true | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-check | |
cancel-in-progress: ${{ !contains(github.ref, 'refs/tags/')}} | |
jobs: | |
check: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
target: [GiniBankAPILibrary, GiniBankAPILibraryPinning] | |
destination: ['platform=iOS Simulator,OS=17.2,name=iPhone SE (3rd generation)', 'platform=iOS Simulator,OS=17.5,name=iPhone 15'] | |
steps: | |
- uses: maxim-lobanov/[email protected] | |
with: | |
xcode-version: '15.3' | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Check package GiniBankAPILibrary | |
if: ${{ matrix.target == 'GiniBankAPILibrary' }} | |
run: | | |
cd BankAPILibrary/GiniBankAPILibrary | |
swift package update | |
- name: Check package GiniBankAPILibraryPinning | |
if: ${{ matrix.target == 'GiniBankAPILibraryPinning' }} | |
run: | | |
cd BankAPILibrary/GiniBankAPILibraryPinning | |
swift package update | |
- name: Build sdk targets | |
run: | | |
xcodebuild -workspace GiniMobile.xcworkspace -scheme "${{ matrix.target }}" -destination "${{ matrix.destination }}" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=NO | |
- name: Run unit tests | |
run: | | |
xcodebuild clean test -workspace GiniMobile.xcworkspace -scheme "${{ matrix.target }}Tests" -destination "${{ matrix.destination }}" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=NO | |
- name: Extract Device Name | |
id: extract_name | |
run: | | |
DEVICE_NAME=$(echo "${{ matrix.destination }}" | sed -n 's/.*name=\([^,]*\).*/\1/p') | |
echo "DEVICE_NAME=${DEVICE_NAME}" >> $GITHUB_ENV | |
- name: Start iOS Simulator | |
run: | | |
xcrun simctl boot "$DEVICE_NAME" | |
xcrun simctl bootstatus "$DEVICE_NAME" -b | |
- name: Build example app and run integration tests | |
if: ${{ matrix.target == 'GiniBankAPILibrary' }} | |
run: > | |
xcodebuild clean test | |
-project BankAPILibrary/GiniBankAPILibraryExample/GiniBankAPILibraryExample.xcodeproj | |
-scheme "GiniBankAPILibraryExampleTests" | |
-destination "${{ matrix.destination }}" | |
CODE_SIGN_IDENTITY="" | |
CODE_SIGNING_REQUIRED=NO | |
ONLY_ACTIVE_ARCH=NO | |
CLIENT_ID="gini-mobile-test" | |
CLIENT_SECRET="${{ secrets.GINI_MOBILE_TEST_CLIENT_SECRET }}" | |
- name: Build pinning example app and run integration tests | |
if: ${{ matrix.target == 'GiniBankAPILibraryPinning' }} | |
run: > | |
xcodebuild clean test | |
-project BankAPILibrary/GiniBankAPILibraryPinningExample/GiniBankAPILibraryPinningExample.xcodeproj | |
-scheme "GiniBankAPILibraryPinningExampleTests" | |
-destination "${{ matrix.destination }}" | |
-skip-testing:GiniBankAPILibraryPinningExampleTests/PinningWrongCertificatesIntegrationTests | |
CODE_SIGN_IDENTITY="" | |
CODE_SIGNING_REQUIRED=NO | |
ONLY_ACTIVE_ARCH=NO | |
CLIENT_ID="gini-mobile-test" | |
CLIENT_SECRET="${{ secrets.GINI_MOBILE_TEST_CLIENT_SECRET }}" | |
&& | |
xcodebuild clean test | |
-project BankAPILibrary/GiniBankAPILibraryPinningExample/GiniBankAPILibraryPinningExample.xcodeproj | |
-scheme "GiniBankAPILibraryPinningExampleTests" | |
-destination "${{ matrix.destination }}" | |
-only-testing:GiniBankAPILibraryPinningExampleTests/PinningWrongCertificatesIntegrationTests | |
CODE_SIGN_IDENTITY="" | |
CODE_SIGNING_REQUIRED=NO | |
ONLY_ACTIVE_ARCH=NO | |
CLIENT_ID="gini-mobile-test" | |
CLIENT_SECRET="${{ secrets.GINI_MOBILE_TEST_CLIENT_SECRET }}" |