Skip to content

⬆️ Lock file maintenance #2055

⬆️ Lock file maintenance

⬆️ Lock file maintenance #2055

Workflow file for this run

name: E2E Tests
on:
pull_request:
branches:
- '**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
setup:
if: 'false'
runs-on: ubuntu-latest
timeout-minutes: 30
outputs:
plugins: ${{ steps.e2e-packages.outputs.e2e-paths }}
steps:
- uses: dtinth/setup-github-actions-caching-for-turbo@cc723b4600e40a6b8815b65701d8614b91e2669e # v1
- uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4
with:
node-version-file: .tool-versions
cache: yarn
- run: yarn install
- id: files
uses: imhoffd/get-changed-files@4064453b1b00f8f8d17f1493c90fbe1f9c40daff # v2
with:
format: json
- id: packages
uses: ./.github/actions/changed-packages
with:
files: ${{ steps.files.outputs.all }}
- id: e2e-packages
uses: ./.github/actions/filter-out-non-e2e-enabled
with:
paths: ${{ steps.packages.outputs.paths }}
e2e-ios:
runs-on: macos-14
timeout-minutes: 35
if: needs.setup.outputs.plugins != '[]'
needs:
- setup
strategy:
matrix:
plugin: ${{ fromJson(needs.setup.outputs.plugins) }}
defaults:
run:
working-directory: ${{ matrix.plugin }}/e2e-tests
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4
with:
node-version-file: .tool-versions
cache: yarn
- name: Prepare Local Package
run: yarn install && yarn run build && npm run pack-local
working-directory: ${{ matrix.plugin }}
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Setup NPMRC
run: echo "//registry.npmjs.org/:_authToken=${{secrets.E2E_NPM_TOKEN}}" > .npmrc
- name: Prepare Local Package
run: npm run e2e:prepare
env:
NPM_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
- name: Install Packages
run: yarn install
env:
NPM_TOKEN: ${{ secrets.E2E_NPM_TOKEN }}
- name: Run E2E Test on iOS
run: npm run e2e:ios
env:
REACT_APP_GOOGLE_MAPS_API_KEY: ${{ secrets.REACT_APP_GOOGLE_MAPS_API_KEY }}
e2e-android:
runs-on: macos-10.15
timeout-minutes: 35
if: needs.setup.outputs.plugins != '[]'
needs:
- setup
strategy:
matrix:
plugin: ${{ fromJson(needs.setup.outputs.plugins) }}
defaults:
run:
working-directory: ${{ matrix.plugin }}/e2e-tests
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4
with:
node-version-file: .tool-versions
cache: yarn
- name: Prepare Local Package
run: npm run e2e:prepare
env:
NPM_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
- name: Prepare Local Package
run: yarn install && npm run build && npm run pack-local
working-directory: ${{ matrix.plugin }}
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Setup NPMRC
run: echo "//registry.npmjs.org/:_authToken=${{secrets.E2E_NPM_TOKEN}}" > .npmrc
- name: Setup local.properties
run: echo "REACT_APP_GOOGLE_MAPS_API_KEY=${{secrets.REACT_APP_GOOGLE_MAPS_API_KEY}}" > android/local.properties
- name: Install Packages
run: yarn install
env:
NPM_TOKEN: ${{ secrets.E2E_NPM_TOKEN }}
- name: AVD cache
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-adb-p3a-30-cache-2
- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@f0d1ed2dcad93c7479e8b2f2226c83af54494915 # v2
with:
avd-name: e2eDevice
api-level: 30
target: google_apis
arch: x86
profile: pixel_3a
emulator-build: 7759208
force-avd-creation: true
emulator-options: -no-window -no-audio -no-boot-anim -accel on
script: echo "Generated AVD snapshot for caching."
- name: Run E2E Test on Android
uses: reactivecircus/android-emulator-runner@f0d1ed2dcad93c7479e8b2f2226c83af54494915 # v2
with:
avd-name: e2eDevice
api-level: 30
target: google_apis
arch: x86
profile: pixel_3a
working-directory: ${{ matrix.plugin }}/e2e-tests
emulator-build: 7759208
emulator-options: -no-window -no-audio -no-boot-anim -accel on -no-snapshot-save
disable-animations: false
script: npm run e2e:android
env:
REACT_APP_GOOGLE_MAPS_API_KEY: ${{ secrets.REACT_APP_GOOGLE_MAPS_API_KEY }}