Skip to content

Run android regression tests #139

Run android regression tests

Run android regression tests #139

name: Run android regression tests
on:
workflow_dispatch:
inputs:
APK_URL:
description: 'APK.tar.gz url to test'
required: true
type: string
default: https://oxen.rocks/oxen-io/session-android/release/1.19.0/session-android-20240807T060802Z-9cc760ce4-universal.tar.xz
BRANCH_TO_CHECKOUT:
description: 'bilb/session-appium branch to checkout'
required: true
type: string
default: august
SHARD_NUMBER:
description: 'shard number'
required: true
type: string
SHARD_COUNT:
description: 'shard count'
required: true
type: string
push:
branches:
- test-docker-container
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true
jobs:
android-regression:
runs-on: [self-hosted, linux, x64, qa-android]
env:
ANDROID_APP_PATH_PREFIX: "../extracted/session-android.apk"
APPIUM_ADB_FULL_PATH: "/opt/android/platform-tools/adb"
ANDROID_SDK_ROOT: "/opt/android"
PLAYWRIGHT_WORKERS_COUNT: 1
IOS_APP_PATH_PREFIX: "just_not_empty"
IOS_FIRST_SIMULATOR: "just_not_empty"
IOS_SECOND_SIMULATOR: "just_not_empty"
IOS_THIRD_SIMULATOR: "just_not_empty"
IOS_FOURTH_SIMULATOR: "just_not_empty"
IOS_FIFTH_SIMULATOR: "just_not_empty"
IOS_SIXTH_SIMULATOR: "just_not_empty"
IOS_SEVENTH_SIMULATOR: "just_not_empty"
IOS_EIGHTH_SIMULATOR: "just_not_empty"
steps:
- uses: actions/checkout@v4
- name: Runner Details
run: |
echo "BRANCH_TO_CHECKOUT ${{ github.event.inputs.BRANCH_TO_CHECKOUT }}"
echo "APK_URL ${{ github.event.inputs.APK_URL }}"
echo "SHARD_NUMBER ${{ github.event.inputs.SHARD_NUMBER }}"
echo "SHARD_COUNT ${{ github.event.inputs.SHARD_COUNT }}"
- name: Download APK
run: |
wget -q -O plop.apk.tar.xz ${{ github.event.inputs.APK_URL }}
ls
pwd
- name: Extract APK
run: |
tar xf plop.apk.tar.xz
ls
pwd
- name: Rename extracted folder
run: |
mv session-android-*universal extracted
ls extracted
mv extracted/*.apk extracted/session-android.apk
ls extracted
pwd
- uses: actions/checkout@v4
with:
repository: 'bilb/session-appium'
ref: ${{ github.event.inputs.BRANCH_TO_CHECKOUT }}​​
path: 'forked-session-appium'
- uses: actions/setup-node@v4
with:
# node-version-file: 'forked-session-appium/.nvmrc'
node-version: 18.15.0
- name: Install yarn
run: |
npm install -g yarn
corepack enable
yarn set version 4.1.1
- name: Install test dependencies
run: |
cd forked-session-appium
ls
git status
touch yarn.lock
yarn install --immutable
- name: Build the Android tests
run: |
cd forked-session-appium
yarn tsc
- name: Start 4 android emulators with snapshots
shell: bash
run: |
for i in {1..4} \
do \
emulator @emulator$i -no-window -no-snapshot-save -snapshot plop.snapshot -force-snapshot-load & \
sleep 5 \
done
- name: Run the Android tests
if: always()
run: |
cd forked-session-appium
pwd
yarn test-android-shard ${{ github.event.inputs.SHARD_NUMBER }}​​/${{ github.event.inputs.SHARD_COUNT }}​​
- name: Killall running emulators
if: always()
run: killall qemu-system-x86_64-headless