UITest on SauceLabs #14
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: UITest on SauceLabs | |
on: | |
workflow_dispatch: | |
inputs: | |
device: | |
required: true | |
default: 'Pixel8_API33' | |
type: choice | |
options: | |
- 'Pixel8_API33' | |
- 'Pixel8_API35' | |
runner: | |
required: true | |
default: 'autotestdebug' | |
type: choice | |
options: | |
- 'autotestdebug' | |
- 'ubuntu-latest' | |
jobs: | |
build: | |
name: build android application for ui tests | |
runs-on: ${{ github.event.inputs.runner || 'autotestdebug' }} | |
timeout-minutes: 30 | |
steps: | |
- name: Print Env Variables | |
run: env | |
working-directory: ${{ github.workspace }} | |
- name: checkout source code of application | |
uses: actions/checkout@v4 | |
with: | |
clean: true | |
path: 'appodeal-android-sdk' | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Build with Gradle | |
working-directory: ${{ github.workspace }}/appodeal-android-sdk | |
run: | | |
./gradlew updateVersionName -PnewVersion=${{ env.GITHUB_RUN_NUMBER }} || true | |
./gradlew :banner:assembleDebug | |
- name: save debug build for Saucelabs | |
uses: actions/upload-artifact@v4 | |
with: | |
name: banner-debug.apk | |
path: appodeal-android-sdk/banner/build/outputs/apk/debug/banner-debug.apk | |
retention-days: 14 | |
- name: Upload apk to SauceLabs | |
run: | | |
curl -u "${{ secrets.SAUCELABS_USERNAME }}:${{ secrets.SAUCELABS_ACCESS_KEY }}" --location \ | |
--request POST 'https://api.eu-central-1.saucelabs.com/v1/storage/upload' \ | |
--form 'payload=@"appodeal-android-sdk/banner/build/outputs/apk/debug/banner-debug.apk"' \ | |
--form 'name="banner-debug.apk"' \ | |
--form 'description="APD demo ${{ env.GITHUB_REF_NAME }} launch by ${{ env.GITHUB_RUN_ID }}"' | |
tests: | |
name: run ui tests on aws with appium | |
needs: build | |
runs-on: ${{ github.event.inputs.runner || 'autotestdebug' }} | |
timeout-minutes: 30 | |
steps: | |
- name: Print Env Variables | |
run: env | |
working-directory: ${{ github.workspace }} | |
- name: checkout source code of application | |
uses: actions/checkout@v4 | |
with: | |
path: 'SDK-Auto-Test' | |
clean: true | |
repository: 'appodeal/SDK-Auto-Test' | |
ref: 'aws' | |
token: ${{ secrets.UITESTREPOACCESS }} | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Launch tests on SauceLabs | |
working-directory: ${{ github.workspace }}/SDK-Auto-Test | |
run: | | |
mvn clean | |
sleep 10 | |
mvn -Dtest=AndroidAppTest test | |
- name: Install Allure | |
run: | | |
curl -o allure-2.13.8.tgz -L https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.13.8/allure-commandline-2.13.8.tgz | |
tar -zxvf allure-2.13.8.tgz | |
sudo mv allure-2.13.8 /opt/allure | |
sudo ln -s /opt/allure/bin/allure /usr/bin/allure | |
- name: Generate Allure Report | |
run: allure generate ${{ github.workspace }}/SDK-Auto-Test/target/allure-results --clean -o allure-report | |
- name: save Allure result | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: allure-results | |
path: ${{ github.workspace }}/SDK-Auto-Test/target/allure-results | |
- name: Upload Allure HTML Report | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: allure-html-report | |
path: allure-report | |
retention-days: 14 | |
- name: Adding summary | |
if: ${{ always() }} | |
run: | | |
echo "### Results of test execution :fire:" >> $GITHUB_STEP_SUMMARY | |
echo "Launch: ${{ github.run_number }}" >> $GITHUB_STEP_SUMMARY | |
echo "Device: ${{ github.event.inputs.device }}" >> $GITHUB_STEP_SUMMARY | |
echo "Build agent: ${{ github.event.inputs.runner }}" >> $GITHUB_STEP_SUMMARY | |
# GITHUB_REF_NAME=feature/auto_test | |
# GITHUB_RUN_ID=10653731636 | |
# GITHUB_REPOSITORY=appodeal/appodeal-android-sdk | |
# https://github.com/appodeal/appodeal-android-sdk/actions/runs/10653731636 | |
# GITHUB_TRIGGERING_ACTOR=johnlitvinov | |
# ${{ env.GITHUB_RUN_ID }} | |
# | |
# mvn clean test -DtestEnv=${ENVIRONMENT} -P${SUITE} -Dmaven.repo.local=$MAVEN_LOCAL_REPO -Dstand=${STAND} -Dselenide.browser=${PLATFORM} -Dlocal_run=false | |
# mvn io.qameta.allure:allure-maven:report -Dmaven.repo.local=$MAVEN_LOCAL_REPO |