Add e2e tests #11
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: Build iOS on PRs | |
on: | |
workflow_dispatch: | |
pull_request: | |
types: [opened, reopened, synchronize] | |
jobs: | |
build: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
xcode_version: [ '15.4.0' ] | |
newArchEnabled: [ 0 ] | |
platform: [iOS, tvOS] | |
name: Build for ${{ matrix.platform }} using XCode version ${{ matrix.xcode_version }} and ${{matrix.newArchEnabled == 1 && 'New' || 'Old' }} Architecture | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Select Xcode ${{ matrix.xcode_version }} | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: ${{ matrix.xcode_version }} | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
cache: 'npm' | |
- name: Cache Ruby Gems | |
uses: actions/cache@v4 | |
with: | |
path: vendor/bundle | |
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} | |
restore-keys: | | |
${{ runner.os }}-gems- | |
- name: Cache CocoaPods | |
uses: actions/cache@v4 | |
with: | |
path: apps/e2e/ios/Pods | |
key: pods-${{ runner.os }}-${{ hashFiles('Podfile.lock') }}-${{ matrix.newArchEnabled }} | |
restore-keys: | | |
pods-${{ runner.os }}- | |
- name: Run npm install | |
run: | | |
npm i -g corepack | |
npm ci --workspaces --include-workspace-root | |
- name: Build workspaces | |
run: npm run build | |
- name: Run documentation tests | |
run: npm test | |
- name: Install & update e2e app with latest react-native-theoplayer | |
run: | | |
cd apps/e2e | |
npm update react-native-theoplayer | |
npm ci | |
- name: Install Ruby dependencies | |
working-directory: apps/e2e | |
run: bundle install | |
- name: Run pod install & update dependencies | |
working-directory: apps/e2e/ios | |
run: | | |
RCT_NEW_ARCH_ENABLED=${{ matrix.newArchEnabled }} bundle exec pod install | |
- name: Start iOS simulator | |
uses: futureware-tech/simulator-action@v4 | |
with: | |
model: ${{ matrix.platform == 'iOS' && 'iPhone 15' || 'Apple TV' }} | |
os: ${{ matrix.platform }} | |
os_version: '>=14.0' | |
- name: Run e2e tests | |
working-directory: apps/e2e | |
run: npm run test:e2e:${{ matrix.platform == 'iOS' && 'ios' || 'tvos' }} | |
- name: Summarize results | |
working-directory: apps/e2e | |
if: always() | |
run: cat cavy_results.md >> $GITHUB_STEP_SUMMARY |