mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
90b64a4d50
Summary: Minor Typo correction. ## Changelog: [INTERNAL][FIXED] updated description of Maestro E2E Android. <!-- Help reviewers and the release process by writing your own changelog entry. Pick one each for the category and type tags: [ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message For more details, see: https://reactnative.dev/contributing/changelogs-in-pull-requests Pull Request resolved: https://github.com/facebook/react-native/pull/51887 Test Plan: NA Reviewed By: cipolleschi Differential Revision: D76253803 Pulled By: cortinico fbshipit-source-id: 16e8b793de4f7bb4eba03f20e09c3cf3d05115b9
85 lines
3.1 KiB
YAML
85 lines
3.1 KiB
YAML
name: Maestro E2E Android
|
|
description: Runs E2E Tests on Android using Maestro
|
|
inputs:
|
|
app-path:
|
|
required: true
|
|
description: The path to the .apk 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
|
|
install-java:
|
|
required: false
|
|
default: 'true'
|
|
description: whether this action has to install java 17 or not
|
|
flavor:
|
|
required: true
|
|
description: the flavor we want to run - either 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: Set up JDK 17
|
|
if: ${{ inputs.install-java == 'true' }}
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
java-version: '17'
|
|
distribution: 'zulu'
|
|
- name: Enable KVM group perms
|
|
shell: bash
|
|
run: |
|
|
# ubuntu machines have hardware acceleration available and when we try to create an emulator, the script pauses asking for user input
|
|
# These lines set the rules to reply automatically to that question and unblock the creation of the emulator.
|
|
# source: https://github.com/ReactiveCircus/android-emulator-runner?tab=readme-ov-file#running-hardware-accelerated-emulators-on-linux-runners
|
|
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
|
|
sudo udevadm control --reload-rules
|
|
sudo udevadm trigger --name-match=kvm
|
|
- name: Build Codegen
|
|
shell: bash
|
|
if: ${{ inputs.flavor == 'debug' }}
|
|
run: ./packages/react-native-codegen/scripts/oss/build.sh
|
|
- name: Run e2e tests
|
|
id: run-tests
|
|
uses: reactivecircus/android-emulator-runner@v2
|
|
with:
|
|
api-level: 24
|
|
arch: x86
|
|
ram-size: '8192M'
|
|
heap-size: '4096M'
|
|
disk-size: '10G'
|
|
cores: '4'
|
|
disable-animations: false
|
|
avd-name: e2e_emulator
|
|
script: node .github/workflow-scripts/maestro-android.js ${{ inputs.app-path }} ${{ inputs.app-id }} ${{ inputs.maestro-flow }} ${{ inputs.flavor }} ${{ inputs.working-directory }}
|
|
- name: Normalize APP_ID
|
|
id: normalize-app-id
|
|
shell: bash
|
|
if: always()
|
|
run: |
|
|
NORM_APP_ID=$(echo "${{ inputs.app-id }}" | tr '.' '-')
|
|
echo "app-id=$NORM_APP_ID" >> $GITHUB_OUTPUT
|
|
- name: Store tests result
|
|
uses: actions/upload-artifact@v4.3.4
|
|
if: always()
|
|
with:
|
|
name: e2e_android_${{ steps.normalize-app-id.outputs.app-id }}_report_${{ inputs.flavor }}_NewArch
|
|
path: |
|
|
report.xml
|
|
screen.mp4
|
|
- name: Store Logs
|
|
if: steps.run-tests.outcome == 'failure'
|
|
uses: actions/upload-artifact@v4.3.4
|
|
with:
|
|
name: maestro-logs-android-${{ steps.normalize-app-id.outputs.app-id }}-${{ inputs.flavor }}-NewArch
|
|
path: /tmp/MaestroLogs
|