-
Notifications
You must be signed in to change notification settings - Fork 16
Setup Hermes V1 testing #45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Setup Hermes V1 testing #45
Conversation
| @@ -0,0 +1,206 @@ | |||
| name: test-hermes-v1 | |||
| description: Tests a library on a nightly | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be adapted, I think
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, a reusable workflow is probably better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can probably collapse this in the hermesv1.yml workflow, to be fair.
Given that there are some steps specific to Android and some other specific to iOS, we could even have a setup_maestro action that is shared and two different workflows: one for android and one for iOS
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new setup is:
- setup maestro action
- setup app with Hermes V1 action
- build & test android app
- build & test ios app
I also moved collecting result to check-nightly workflow, so it's able to pick up results from library tests, as well as hermes v1.
9764245 to
d89a744
Compare
cipolleschi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for working on this. I left a couple of questions
| with: | ||
| name: ${{ steps.save-outcome.outputs.lib_folder }}-${{ matrix.platform }}-outcome | ||
| path: /tmp/${{ steps.save-outcome.outputs.lib_folder }}-${{ matrix.platform }}-outcome | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why this got removed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I moved it to check-nightly.yml. That's the workflow responsible for triggering all the library tests, and now also Hermes v1 tests. Since Hermes v1 tests follow the same pattern, their results should be picked up in collectNightlyOutcomes.js. That script is responsible for sending a Discord message, so the Hermes v1 results should already be included.
| run: | | ||
| METRO_PID=$(cat /tmp/metro.pid) | ||
| kill $METRO_PID || true | ||
| echo "Metro process $METRO_PID stopped." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add a step where we send a notification to Discord? You can copy the setup we have in the test-libraries, the same discord channel is fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See my reply above and let me know if it's ok.
| run: | | ||
| METRO_PID=$(cat /tmp/metro.pid) | ||
| kill $METRO_PID || true | ||
| echo "Metro process $METRO_PID stopped." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment to notify discord as above.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above.
Summary
Sets up automated testing of Hermes V1. The workflow will set up a new RN app from the template, enable Hermes V1, build the app, and run a simple E2E test using it.
E2E is based on the setup used in the React Native repository:
maestro-ios.jsmaestro-android.jsstart.ymlIf I understand the repository setup correctly, to pick up the results of the actions and show them on the website, the action needs to upload GitHub artifacts in a specific format, which I believe the new workflow does. Please correct me if I'm wrong.