chore: update quickstart #383
Workflow file for this run
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
name: E2E | |
on: | |
pull_request: | |
branches: [main] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
e2e-android: | |
name: Android | |
runs-on: self-hosted | |
steps: | |
- uses: actions/checkout@v2 | |
# In case this is run on a runner without nix | |
# - uses: DeterminateSystems/nix-installer-action@main | |
- uses: DeterminateSystems/magic-nix-cache-action@v2 | |
# Caching | |
- uses: actions/cache@v2 | |
with: | |
path: | | |
node_modules | |
ios/Pods | |
key: ${{ runner.os }}-deps-${{ hashFiles('**/yarn.lock', '**/Podfile.lock') }} | |
restore-keys: | | |
${{ runner.os }}-deps- | |
# Installations | |
- name: Install Node Modules and Pods | |
run: nix develop -c yarn install | |
env: | |
LANG: en_US.UTF-8 | |
# Metro | |
- name: Start Metro | |
run: | | |
nix develop -c sh -c 'yarn start' & | |
echo "METRO_PID=$!" >> $GITHUB_ENV | |
# Builds | |
- run: nix develop -c yarn e2e:build android.emu.debug | |
# Start Tilt | |
- name: Tilt CI | |
uses: nick-fields/retry@v3 | |
with: | |
timeout_minutes: 10 | |
max_attempts: 10 | |
retry_wait_seconds: 45 | |
command: nix develop -c sh -c 'cd dev && tilt ci' | |
- name: Tilt Server | |
run: | | |
lsof -ti:10350 | xargs kill -9 || true | |
nix develop -c sh -c 'cd dev && tilt up' & | |
echo "TILT_SERVER_PID=$!" >> $GITHUB_ENV | |
# Tests on Android Emulator | |
- name: Start Android Emulator | |
run: | | |
nix develop -c sh -c 'emulator -avd Pixel_API_34 -gpu swiftshader -wipe-data -no-boot-anim' & | |
nix develop -c adb wait-for-device | |
- name: Run Detox Tests on Android Emulator | |
uses: nick-fields/retry@v3 | |
with: | |
timeout_minutes: 15 | |
retry_wait_seconds: 1 | |
max_attempts: 3 | |
command: | | |
rm -rf android-recordings || true | |
nix develop -c tilt trigger dev-setup | |
nix develop -c tilt wait --timeout 5m --for=condition=Ready uiresources dev-setup | |
nix develop -c yarn e2e:test android.emu.debug -d --take-screenshots all --record-videos all --record-logs all --artifacts-location android-recordings | |
- name: Kill Android Emulator | |
if: always() | |
continue-on-error: true | |
run: nix develop -c adb emu kill | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: android-recordings | |
path: android-recordings | |
# Upload recordings to GCS bucket | |
- uses: "google-github-actions/auth@v2" | |
if: always() | |
with: | |
credentials_json: "${{ secrets.BUILD_ARTIFACTS_BUCKET_KEY }}" | |
- uses: "google-github-actions/upload-cloud-storage@v2" | |
if: always() | |
with: | |
path: android-recordings | |
predefinedAcl: publicRead | |
glob: "**/*.mp4" | |
headers: |- | |
content-type: video/mp4 | |
destination: galoy-mobile-recordings/android-recordings/${{ github.run_id }} | |
- name: Append Direct Links to GitHub Actions Summary | |
if: always() | |
run: | | |
# Define the base URL for the uploaded files in the GCS bucket | |
BASE_URL="https://storage.googleapis.com/galoy-mobile-recordings/android-recordings/${{ github.run_id }}/android-recordings" | |
echo "## Android Recordings" >> $GITHUB_STEP_SUMMARY | |
find android-recordings -type f -name "*.mp4" | while read file; do | |
# Extract the relative path of the file within the android-recordings folder | |
RELATIVE_PATH="${file#android-recordings/}" | |
# Construct the direct URL for the file | |
FILE_URL="${BASE_URL}/${RELATIVE_PATH}" | |
TEST_NAME=$(echo "$RELATIVE_PATH" | sed -E 's|.*/(.*)/test\.mp4|\1|') | |
# Append the URL to the GitHub Actions summary | |
echo "- $TEST_NAME [Recording](<$FILE_URL>)" >> $GITHUB_STEP_SUMMARY | |
done | |
# Cleanup | |
- name: Terminate Metro | |
if: always() | |
continue-on-error: true | |
run: kill $METRO_PID | |
- name: Cleanup | |
if: always() | |
continue-on-error: true | |
run: | | |
kill $METRO_PID || true | |
kill $TILT_SERVER_PID || true | |
nix develop -c sh -c 'cd dev && tilt down' || true | |
docker rm -f $(docker ps -aq) || true | |
lsof -ti:10350,8080,8081 | xargs kill -9 || true | |
e2e-ios: | |
name: iOS | |
runs-on: self-hosted | |
steps: | |
- uses: actions/checkout@v2 | |
# In case this is run on a runner without nix | |
# - uses: DeterminateSystems/nix-installer-action@main | |
- uses: DeterminateSystems/magic-nix-cache-action@v2 | |
# Caching | |
- uses: actions/cache@v2 | |
with: | |
path: | | |
node_modules | |
ios/Pods | |
key: ${{ runner.os }}-deps-${{ hashFiles('**/yarn.lock', '**/Podfile.lock') }} | |
restore-keys: | | |
${{ runner.os }}-deps- | |
# Installations | |
- name: Install Node Modules and Pods | |
run: nix develop -c yarn install | |
env: | |
LANG: en_US.UTF-8 | |
# Metro | |
- name: Start Metro | |
run: | | |
nix develop -c sh -c 'yarn start' & | |
echo "METRO_PID=$!" >> $GITHUB_ENV | |
# Builds | |
- run: nix develop -c yarn e2e:build ios.sim.debug | |
# Start Tilt | |
- name: Tilt CI | |
uses: nick-fields/retry@v3 | |
with: | |
timeout_minutes: 10 | |
max_attempts: 10 | |
retry_wait_seconds: 45 | |
command: nix develop -c sh -c 'cd dev && tilt ci' | |
- name: Tilt Server | |
run: | | |
lsof -ti:10350 | xargs kill -9 || true | |
nix develop -c sh -c 'cd dev && tilt up' & | |
echo "TILT_SERVER_PID=$!" >> $GITHUB_ENV | |
# Tests on iOS Simulator | |
- name: Run Detox Tests on iOS Simulator | |
uses: nick-fields/retry@v3 | |
with: | |
timeout_minutes: 15 | |
retry_wait_seconds: 1 | |
max_attempts: 3 | |
command: | | |
rm -rf ios-recordings || true | |
nix develop -c tilt trigger dev-setup | |
nix develop -c tilt wait --timeout 5m --for=condition=Ready uiresources dev-setup | |
nix develop -c yarn e2e:test ios.sim.debug -d -R 5 --take-screenshots all --record-videos all --record-logs all --artifacts-location ios-recordings | |
- run: killall Simulator | |
if: always() | |
continue-on-error: true | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: ios-recordings | |
path: ios-recordings | |
# Upload recordings to GCS bucket | |
- uses: "google-github-actions/auth@v2" | |
if: always() | |
with: | |
credentials_json: "${{ secrets.BUILD_ARTIFACTS_BUCKET_KEY }}" | |
- uses: "google-github-actions/upload-cloud-storage@v2" | |
if: always() | |
with: | |
path: ios-recordings | |
predefinedAcl: publicRead | |
glob: "**/*.mp4" | |
headers: |- | |
content-type: video/mp4 | |
destination: galoy-mobile-recordings/ios-recordings/${{ github.run_id }} | |
- name: Append Direct Links to GitHub Actions Summary | |
if: always() | |
run: | | |
# Define the base URL for the uploaded files in the GCS bucket | |
BASE_URL="https://storage.googleapis.com/galoy-mobile-recordings/ios-recordings/${{ github.run_id }}/ios-recordings" | |
echo "## iOS Recordings" >> $GITHUB_STEP_SUMMARY | |
find ios-recordings -type f -name "*.mp4" | while read file; do | |
# Extract the relative path of the file within the ios-recordings folder | |
RELATIVE_PATH="${file#ios-recordings/}" | |
# Construct the direct URL for the file | |
FILE_URL="${BASE_URL}/${RELATIVE_PATH}" | |
TEST_NAME=$(echo "$RELATIVE_PATH" | sed -E 's|.*/(.*)/test\.mp4|\1|') | |
# Append the URL to the GitHub Actions summary | |
echo "- $TEST_NAME [Recording](<$FILE_URL>)" >> $GITHUB_STEP_SUMMARY | |
done | |
# Cleanup | |
- name: Cleanup | |
if: always() | |
continue-on-error: true | |
run: | | |
kill $METRO_PID || true | |
kill $TILT_SERVER_PID || true | |
nix develop -c sh -c 'cd dev && tilt down' || true | |
docker rm -f $(docker ps -aq) || true | |
lsof -ti:10350,8080,8081 | xargs kill -9 || true |