Skip to content

Split iOS testing jobs #44

Split iOS testing jobs

Split iOS testing jobs #44

Workflow file for this run

name: CI
on: push
env:
flutter: '3.x'
xcode: '14.2'
simulator: iPhone 14
jobs:
authorize:
name: Authorize
environment: ${{ github.event.pull_request.head.repo.fork && 'external' || 'internal' }}
runs-on: ubuntu-latest
steps:
- run: true
analyze:
name: Analyze Flutter packages
needs: authorize
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
- name: Install Flutter
uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa
with:
flutter-version: ${{ env.flutter }}
channel: stable
cache: true
- name: Add example/.env
working-directory: auth0_flutter
run: cp example/.env.example example/.env
- name: Analize auth0_flutter package
working-directory: auth0_flutter
run: flutter analyze
- name: Analize auth0_flutter_platform_interface package
working-directory: auth0_flutter_platform_interface
run: flutter analyze
test-flutter:
name: Test Flutter packages
needs: authorize
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
- name: Install Flutter
uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa
with:
flutter-version: ${{ env.flutter }}
channel: stable
cache: true
- name: Add example/.env
working-directory: auth0_flutter
run: cp example/.env.example example/.env
- name: Test auth0_flutter package
working-directory: auth0_flutter
run: |
flutter test --tags browser --platform chrome
flutter test --coverage --exclude-tags browser
- name: Test auth0_flutter_platform_interface package
working-directory: auth0_flutter_platform_interface
run: flutter test --coverage
- name: Upload coverage report for auth0_flutter
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d
with:
name: Auth0 Flutter
flags: auth0_flutter
files: ./auth0_flutter/coverage/lcov.info
- name: Upload coverage report for auth0_flutter_platform_interface
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d
with:
name: Auth0 Flutter
flags: auth0_flutter_platform_interface
files: ./auth0_flutter_platform_interface/coverage/lcov.info
test-ios-unit:
name: Run native iOS unit tests using Xcode ${{ matrix.xcode }}
needs: authorize
runs-on: macos-latest
environment: ${{ github.event.pull_request.head.repo.fork && 'external' || 'internal' }}
env:
USER_EMAIL: ${{ secrets.USER_EMAIL }}
USER_PASSWORD: ${{ secrets.USER_PASSWORD }}
strategy:
matrix:
xcode:
- '14.2'
steps:
- name: Checkout
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
- name: Set up environment
uses: ./.github/actions/setup-ios
with:
flutter: ${{ env.flutter }}
xcode: ${{ matrix.xcode }}
auth0-domain: ${{ vars.AUTH0_DOMAIN }}
auth0-client-id: ${{ vars.AUTH0_CLIENT_ID }}
- name: Run iOS unit tests
working-directory: auth0_flutter/example/ios
run: xcodebuild test -scheme Runner -workspace Runner.xcworkspace -destination '${{ format('{0}{1}', 'platform=iOS Simulator,name=', env.simulator) }}' -resultBundlePath unit-tests.xcresult -skip-testing:RunnerUITests
- name: Convert coverage report
working-directory: auth0_flutter/example/ios
run: bundle exec slather coverage -x --scheme Runner Runner.xcodeproj
- name: Upload coverage report
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d
with:
directory: auth0_flutter/example/ios/cobertura
- name: Upload xcresult bundles
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
if: ${{ failure() }}
with:
name: xcresult bundles
path: 'auth0_flutter/example/ios/*.xcresult'
test-ios-smoke:
name: Run native iOS smoke tests using Xcode ${{ matrix.xcode }}
needs: authorize
runs-on: macos-latest
environment: ${{ github.event.pull_request.head.repo.fork && 'external' || 'internal' }}
env:
USER_EMAIL: ${{ secrets.USER_EMAIL }}
USER_PASSWORD: ${{ secrets.USER_PASSWORD }}
strategy:
matrix:
xcode:
- '14.2'
steps:
- name: Checkout
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
- name: Set up environment
uses: ./.github/actions/setup-ios
with:
flutter: ${{ env.flutter }}
xcode: ${{ matrix.xcode }}
auth0-domain: ${{ vars.AUTH0_DOMAIN }}
auth0-client-id: ${{ vars.AUTH0_CLIENT_ID }}
- name: Run iOS smoke tests
if: ${{ github.event.pull_request.head.repo.fork == false }}
working-directory: auth0_flutter/example/ios
run: |
defaults write com.apple.iphonesimulator ConnectHardwareKeyboard 0
xcodebuild test -scheme Runner -workspace Runner.xcworkspace -destination '${{ format('{0}{1}', 'platform=iOS Simulator,name=', env.simulator) }}' -resultBundlePath smoke-tests.xcresult -only-testing:RunnerUITests
- name: Upload xcresult bundles
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
if: ${{ failure() }}
with:
name: xcresult bundles
path: 'auth0_flutter/example/ios/*.xcresult'