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-12
22    strategy:
23      matrix:
24        api-level: [31]
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      - name: �� Install cocoapods
40        run: sudo gem install cocoapods
41      - name: ♻️ Restore caches
42        uses: ./.github/actions/expo-caches
43        id: expo-caches
44        with:
45          yarn-workspace: 'true'
46          avd: 'true'
47          avd-api: ${{ matrix.api-level }}
48      - name: �� Install `expo-test-runner`
49        run: |
50          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')
51        working-directory: packages/expo-dev-client
52      - name: �� Run tests
53        run: |
54          yarn e2e
55        working-directory: packages/expo-dev-client
56      - name: �� Store artifacts of build failures
57        if: failure()
58        uses: actions/upload-artifact@v3
59        with:
60          name: expo-dev-client-e2e-artifacts
61          path: packages/expo-dev-client/artifacts
62