-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
14 changed files
with
515 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,198 @@ | ||
name: React Native E2E Tests | ||
|
||
on: | ||
pull_request: | ||
branches: [ main, develop ] | ||
push: | ||
branches: [ main, develop ] | ||
workflow_dispatch: | ||
|
||
jobs: | ||
android-e2e-tests: | ||
name: Android E2E Tests | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Setup Java | ||
uses: actions/setup-java@v4 | ||
with: | ||
distribution: 'zulu' | ||
java-version: '17' | ||
|
||
- name: Setup Ruby | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: '3.0' | ||
bundler-cache: false | ||
|
||
- name: Update Gemfile.lock and install dependencies | ||
run: | | ||
bundle update --bundler | ||
bundle install | ||
- name: Setup Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '18' | ||
cache: 'yarn' | ||
|
||
- name: Install dependencies | ||
run: | | ||
yarn install --frozen-lockfile | ||
cd android && bundle install | ||
- name: Create Fastfile if not exists | ||
run: | | ||
mkdir -p android/fastlane | ||
echo ' | ||
default_platform(:android) | ||
platform :android do | ||
desc "Build and install the app" | ||
lane :build_and_install do | ||
gradle(task: "clean assembleDebug") | ||
gradle(task: "installDebug") | ||
end | ||
end | ||
' > android/fastlane/Fastfile | ||
- name: Create .env.ci file | ||
run: | | ||
echo "FASTLANE_DISABLE_INTERACTIVE=1" > android/fastlane/.env.ci | ||
- name: Check Fastlane files | ||
run: | | ||
ls -la android/fastlane | ||
cat android/fastlane/Fastfile | ||
- name: Build and run Android app | ||
uses: reactivecircus/android-emulator-runner@v2 | ||
env: | ||
FASTLANE_DISABLE_COLORS: 1 | ||
FASTLANE_SKIP_UPDATE_CHECK: 1 | ||
LC_ALL: en_US.UTF-8 | ||
LANG: en_US.UTF-8 | ||
with: | ||
api-level: 29 | ||
arch: x86_64 | ||
profile: Nexus 6 | ||
script: | | ||
cd android | ||
echo "Current directory: $(pwd)" | ||
echo "Contents of current directory:" | ||
ls -la | ||
bundle exec fastlane --verbose android build_and_install --env ci | ||
cd .. | ||
echo "Installing Maestro..." | ||
curl -Ls "https://get.maestro.mobile.dev" | bash | ||
export PATH="$PATH":"$HOME/.maestro/bin" | ||
echo "Running Maestro tests..." | ||
maestro --verbose test -e APP_ID=com.weatherApp.callstack e2e/main-flow-android.yaml | ||
- name: Upload Maestro logs | ||
if: always() | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: maestro-android-logs | ||
path: ~/.maestro/logs | ||
|
||
ios-e2e-tests: | ||
name: iOS E2E Tests | ||
runs-on: macos-13 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_15.0.app/Contents/Developer | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Setup Ruby | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: '3.0' | ||
bundler-cache: false | ||
|
||
- name: Update Gemfile.lock and install dependencies | ||
run: | | ||
bundle update --bundler | ||
bundle install | ||
- name: Setup Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '18' | ||
cache: 'yarn' | ||
|
||
- name: Install dependencies | ||
run: | | ||
yarn install --frozen-lockfile | ||
cd ios && bundle install | ||
- name: Create Fastfile if not exists | ||
run: | | ||
mkdir -p ios/fastlane | ||
echo ' | ||
default_platform(:ios) | ||
platform :ios do | ||
desc "Build and test the app" | ||
lane :build_and_test do | ||
cocoapods | ||
gym( | ||
scheme: "weatherApp", | ||
workspace: "weatherApp.xcworkspace", | ||
configuration: "Debug", | ||
destination: "generic/platform=iOS Simulator", | ||
output_directory: "./build", | ||
output_name: "weatherApp.app", | ||
skip_package_ipa: true | ||
) | ||
end | ||
end | ||
' > ios/fastlane/Fastfile | ||
- name: Create .env.ci file | ||
run: | | ||
echo "FASTLANE_DISABLE_INTERACTIVE=1" > ios/fastlane/.env.ci | ||
- name: Check Fastlane files | ||
run: | | ||
ls -la ios/fastlane | ||
cat ios/fastlane/Fastfile | ||
- name: Install CocoaPods | ||
run: | | ||
cd ios | ||
pod install --repo-update | ||
- name: Build and run iOS app | ||
env: | ||
FASTLANE_DISABLE_COLORS: 1 | ||
FASTLANE_SKIP_UPDATE_CHECK: 1 | ||
run: | | ||
cd ios | ||
echo "Current directory: $(pwd)" | ||
echo "Contents of current directory:" | ||
ls -la | ||
bundle exec fastlane --verbose ios build_and_test --env ci | ||
- name: List build artifacts | ||
run: | | ||
ls -R ios/build | ||
- name: Run Maestro tests | ||
run: | | ||
echo "Installing Maestro..." | ||
curl -Ls "https://get.maestro.mobile.dev" | bash | ||
echo "$HOME/.maestro/bin" >> $GITHUB_PATH | ||
export PATH="$PATH:$HOME/.maestro/bin" | ||
echo "Running Maestro tests..." | ||
maestro --verbose test -e APP_ID=com.weatherApp.callstack e2e/main-flow-ios.yaml | ||
- name: Upload Maestro logs | ||
if: always() | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: maestro-ios-logs | ||
path: | | ||
~/.maestro/logs | ||
ios/build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.