mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
a7a51275b5
Summary: I've noticed that test_js (20) and test_js (24) are actually running on Node 22. That's because the `yarn-install` action is invoking setup-node again with the default value (22). This changes it. Also I'm cleaning up the workflows so that every `yarn-install` invocation is happening just after the `setup-node` invocation. ## Changelog: [INTERNAL] - Pull Request resolved: https://github.com/facebook/react-native/pull/52737 Test Plan: CI which will most likely be red for test_js (20) so will need a follow-up Reviewed By: cipolleschi Differential Revision: D78664671 Pulled By: cortinico fbshipit-source-id: c73390930d1511d1bf0f2d4ea92e83f50b10247f
85 lines
2.5 KiB
YAML
85 lines
2.5 KiB
YAML
name: Maestro E2E iOS
|
|
description: Runs E2E Tests on iOS using Maestro
|
|
inputs:
|
|
app-path:
|
|
required: true
|
|
description: The path to the .app file
|
|
app-id:
|
|
required: true
|
|
description: The id of the app to test
|
|
maestro-flow:
|
|
required: true
|
|
description: the folder that contains the maestro tests
|
|
flavor:
|
|
required: true
|
|
description: Whether we are building for Debug or Release
|
|
default: Release
|
|
working-directory:
|
|
required: false
|
|
default: "."
|
|
description: The directory from which metro should be started
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Installing Maestro
|
|
shell: bash
|
|
run: export MAESTRO_VERSION=1.40.0; curl -Ls "https://get.maestro.mobile.dev" | bash
|
|
- name: Installing Maestro dependencies
|
|
shell: bash
|
|
run: |
|
|
brew tap facebook/fb
|
|
brew install facebook/fb/idb-companion
|
|
- name: Set up JDK 11
|
|
uses: actions/setup-java@v2
|
|
with:
|
|
java-version: '17'
|
|
distribution: 'zulu'
|
|
- name: Setup node.js
|
|
uses: ./.github/actions/setup-node
|
|
- name: Run yarn install
|
|
uses: ./.github/actions/yarn-install
|
|
- name: Start Metro in Debug
|
|
shell: bash
|
|
if: ${{ inputs.flavor == 'Debug' }}
|
|
run: |
|
|
# build codegen or we will see a redbox
|
|
./packages/react-native-codegen/scripts/oss/build.sh
|
|
|
|
cd ${{ inputs.working-directory }}
|
|
yarn start &
|
|
sleep 5 # to give metro time to load
|
|
- name: Run tests
|
|
id: run-tests
|
|
shell: bash
|
|
run: |
|
|
# Avoid exit from the job if one of the command returns an error.
|
|
# Maestro can fail in case of flakyness, we have some retry logic.
|
|
set +e
|
|
|
|
node .github/workflow-scripts/maestro-ios.js \
|
|
"${{ inputs.app-path }}" \
|
|
"${{ inputs.app-id }}" \
|
|
"${{ inputs.maestro-flow }}" \
|
|
"Hermes" \
|
|
"${{ inputs.flavor }}" \
|
|
"${{ inputs.working-directory }}"
|
|
- name: Store video record
|
|
if: always()
|
|
uses: actions/upload-artifact@v4.3.4
|
|
with:
|
|
name: e2e_ios_${{ inputs.app-id }}_report_${{ inputs.flavor }}_NewArch
|
|
path: |
|
|
video_record_1.mov
|
|
video_record_2.mov
|
|
video_record_3.mov
|
|
video_record_4.mov
|
|
video_record_5.mov
|
|
report.xml
|
|
- name: Store Logs
|
|
if: failure() && steps.run-tests.outcome == 'failure'
|
|
uses: actions/upload-artifact@v4.3.4
|
|
with:
|
|
name: maestro-logs-${{ inputs.app-id }}-${{ inputs.flavor }}-NewArch
|
|
path: /tmp/MaestroLogs
|