1name: Development Client e2e
2
3on:
4  workflow_dispatch: {}
5  pull_request:
6    paths:
7      - .github/workflows/development-client-e2e.yml
8      - packages/expo-dev-*/**
9  push:
10    branches: [main]
11    paths:
12      - .github/workflows/development-client-e2e.yml
13      - packages/expo-dev-*/**
14
15concurrency:
16  group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
17  cancel-in-progress: true
18
19jobs:
20  detox_e2e:
21    runs-on: macos-13
22    strategy:
23      matrix:
24        api-level: [33]
25    steps:
26      - name: �� Checkout
27        uses: actions/checkout@v3
28      - name: ➕ Add `bin` to GITHUB_PATH
29        run: echo "$(pwd)/bin" >> $GITHUB_PATH
30      - name: �� Install required tools
31        run: |
32          brew tap wix/brew
33          brew install applesimutils
34          brew install watchman
35      - name: �� Setup Ruby and install gems
36        uses: ruby/setup-ruby@v1
37        with:
38          bundler-cache: true
39          ruby-version: 3.2.2
40      - name: �� Install cocoapods
41        run: sudo gem install cocoapods
42      - name: ♻️ Restore caches
43        uses: ./.github/actions/expo-caches
44        id: expo-caches
45        with:
46          gradle: 'true'
47          yarn-workspace: 'true'
48      - name: �� Set up android emulator
49        uses: ./.github/actions/use-android-emulator
50        with:
51          avd-api: ${{ matrix.api-level }}
52          avd-name: avd-${{ matrix.api-level }}
53      - name: �� Install `expo-test-runner`
54        run: |
55          yarn global add expo-test-runner@$(cat package.json | grep '"expo-test-runner": "[0-9]*\.[0-9]*\.[0-9]*' | head -n 1 | awk '{print $2}' | sed 's/"//g; s/,//g')
56        working-directory: packages/expo-dev-client
57      - name: �� Run tests
58        run: |
59          yarn e2e
60        working-directory: packages/expo-dev-client
61      - name: �� Store artifacts of build failures
62        if: failure()
63        uses: actions/upload-artifact@v3
64        with:
65          name: expo-dev-client-e2e-artifacts
66          path: packages/expo-dev-client/artifacts
67