Skip to content

Commit

Permalink
ci: Switch CI scripts to GH Actions (appium#479)
Browse files Browse the repository at this point in the history
  • Loading branch information
mykola-mokhnach authored Sep 1, 2022
1 parent 6c050b9 commit 937892d
Show file tree
Hide file tree
Showing 13 changed files with 109 additions and 225 deletions.
69 changes: 0 additions & 69 deletions .azure-pipelines.yml

This file was deleted.

41 changes: 0 additions & 41 deletions .azure-templates/integration-job.yml

This file was deleted.

56 changes: 0 additions & 56 deletions .azure-templates/scripts/start-emulator.sh

This file was deleted.

87 changes: 87 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Build

on: [pull_request, push]


jobs:
unit_test:
strategy:
matrix:
node: [14, 16, 18]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
- run: npm i -g npm
name: Update NPM
- run: npm install --no-package-lock
name: Install dev dependencies
- run: npm run lint
name: Run js linter
- run: npm run lint:java
name: Run java linter
- run: npm run test
name: Run unit tests

e2e_test:
strategy:
matrix:
include:
- platformVersion: "11.0"
apiLevel: 30
emuTag: google_apis
- platformVersion: "9.0"
apiLevel: 28
emuTag: default
- platformVersion: "7.1"
apiLevel: 25
emuTag: default
- platformVersion: "5.1"
apiLevel: 22
emuTag: default

env:
CI: true
ANDROID_AVD: emulator
ANDROID_SDK_VERSION: ${{ matrix.apiLevel }}
PLATFORM_VERSION: ${{ matrix.platformVersion }}
EMU_TAG: ${{ matrix.emuTag }}
_FORCE_LOGS: 1
# No hardware acceleration is available for emulators on Ubuntu:
# https://github.com/marketplace/actions/android-emulator-runner#can-i-use-this-action-on-linux-vms
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: lts/*
check-latest: true
- run: npm install --no-package-lock
name: Install dev dependencies
- uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
- run: nohup adb logcat > logcat.log &
name: Capture Logcat
- uses: reactivecircus/android-emulator-runner@v2
name: e2e_api${{ matrix.apiLevel }}
with:
script: scripts/e2e.sh
avd-name: ${{ env.ANDROID_AVD }}
sdcard-path-or-size: 1500M
api-level: ${{ matrix.apiLevel }}
disable-spellchecker: true
target: ${{ matrix.emuTag }}
- name: Save logcat output
if: ${{ always() }}
uses: actions/upload-artifact@master
with:
name: logcat-api${{ matrix.apiLevel }}
path: logcat.log
6 changes: 3 additions & 3 deletions .github/workflows/publish.js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ jobs:

steps:
- uses: actions/checkout@v2
- name: Use Node.js 18.x
uses: actions/setup-node@v1
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 18.x
node-version: lts/*
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
Expand Down
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ buildscript {
maven { url 'https://jitpack.io' }
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.2'
classpath 'com.android.tools.build:gradle:7.2.2'
classpath 'com.github.bjoernq:unmockplugin:0.7.9'
}
}
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
<uses-permission android:name="android.permission.BLUETOOTH" />

<application android:allowBackup="true" tools:ignore="GoogleAppIndexingWarning">
<receiver android:name="io.appium.uiautomator2.server.ServerInstrumentation$PowerConnectionReceiver">
<receiver android:name="io.appium.uiautomator2.server.ServerInstrumentation$PowerConnectionReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
package io.appium.uiautomator2.model;

import android.graphics.Rect;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.accessibility.AccessibilityNodeInfo;
Expand Down Expand Up @@ -261,10 +260,6 @@ public boolean equals(Object other) {
*/
@Nullable
public static String getExtrasAsString(AccessibilityNodeInfo nodeInfo) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
return null;
}

List<String> extras = new ArrayList<>();
Bundle extraBundle = nodeInfo.getExtras();
for (String key : extraBundle.keySet()) {
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ buildscript {
maven { url 'https://jitpack.io' }
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.2'
classpath 'com.android.tools.build:gradle:7.2.2'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand Down
46 changes: 0 additions & 46 deletions ci-jobs/scripts/start-emulator.sh

This file was deleted.

2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@
],
"homepage": "https://github.com/appium/appium-uiautomator2-server",
"scripts": {
"clean": "rm -rf node_modules && rm -f package-lock.json && npm install",
"bump-gradle-version": "node ./scripts/gradle-version-update.js --package-version=${npm_package_version} && git add app/build.gradle",
"build": "./gradlew clean assembleServerDebug assembleServerDebugAndroidTest && npm run move-apks && npm run sign-apk",
"sign-apk": "node ./scripts/sign-apk.js",
"lint:java": "./gradlew lint",
"lint": "eslint .",
"lint:fix": "npm run lint -- --fix",
"move-server": "cp app/build/outputs/apk/server/debug/appium-uiautomator2-server-v${npm_package_version}.apk ./apks",
Expand Down
13 changes: 13 additions & 0 deletions scripts/e2e.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash -xe

classes=(AlertCommandsTest ActionsCommandsTest GestureCommandsTest ElementCommandsTest DeviceCommandsTest)
did_fail=0
for cls_name in "${classes[@]}"; do
if ! ./gradlew connectedE2eTestDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=io.appium.uiautomator2.unittest.test.$cls_name -Pandroid.testInstrumentationRunnerArguments.notAnnotation=io.appium.uiautomator2.unittest.test.internal.SkipHeadlessDevices; then
did_fail=1
fi
done

if [[ did_fail -eq 1 ]]; then
exit 1
fi

0 comments on commit 937892d

Please sign in to comment.