Introduce android 13 CI in project

This commit is contained in:
MohitMali 2022-11-22 11:47:15 +05:30
parent 21c6a27881
commit a0449efffa
10 changed files with 202 additions and 151 deletions

View File

@ -15,8 +15,7 @@ jobs:
coverageReport: coverageReport:
strategy: strategy:
matrix: matrix:
api-level: [21,30] api-level: [21,30,33]
target: [ google_apis ]
fail-fast: false fail-fast: false
runs-on: macos-11 runs-on: macos-11
steps: steps:
@ -41,20 +40,41 @@ jobs:
${{ runner.os }}-gradle- ${{ runner.os }}-gradle-
- name: create instrumentation coverage - name: create instrumentation coverage
uses: ReactiveCircus/android-emulator-runner@v2.23.0 uses: ReactiveCircus/android-emulator-runner@v2.25.0
env: env:
GRADLE_OPTS: "-Dorg.gradle.internal.http.connectionTimeout=60000 -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.network.retry.max.attempts=6 -Dorg.gradle.internal.network.retry.initial.backOff=2000" GRADLE_OPTS: "-Dorg.gradle.internal.http.connectionTimeout=60000 -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.network.retry.max.attempts=6 -Dorg.gradle.internal.network.retry.initial.backOff=2000"
if: ${{ matrix.api-level != 33 }}
with: with:
api-level: ${{ matrix.api-level }} api-level: ${{ matrix.api-level }}
target: default
arch: x86_64 arch: x86_64
profile: pixel_2 profile: pixel_2
ndk: 21.4.7075529 ndk: 21.4.7075529
ram-size: '4096M'
disk-size: '14G'
sdcard-path-or-size: '1000M'
disable-animations: false
script: bash contrib/instrumentation.sh
- name: create instrumentation coverage on google_apis for android 33
uses: ReactiveCircus/android-emulator-runner@v2.25.0
env:
GRADLE_OPTS: "-Dorg.gradle.internal.http.connectionTimeout=60000 -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.network.retry.max.attempts=6 -Dorg.gradle.internal.network.retry.initial.backOff=2000"
if: ${{ matrix.api-level == 33 }}
with:
api-level: ${{ matrix.api-level }}
target: google_apis
arch: x86_64
profile: pixel_2
ndk: 21.4.7075529
ram-size: '4096M'
disk-size: '14G'
sdcard-path-or-size: '1000M' sdcard-path-or-size: '1000M'
disable-animations: false disable-animations: false
script: bash contrib/instrumentation.sh script: bash contrib/instrumentation.sh
- name: Upload screenshot result - name: Upload screenshot result
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v2
if: failure() if: failure()
with: with:
name: ${{ matrix.api-level }} name: ${{ matrix.api-level }}

View File

@ -17,6 +17,7 @@
*/ */
package org.kiwix.kiwixmobile.help package org.kiwix.kiwixmobile.help
import android.os.Build
import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread
import androidx.test.platform.app.InstrumentationRegistry import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice import androidx.test.uiautomator.UiDevice
@ -34,6 +35,7 @@ class HelpFragmentTest : BaseActivityTest() {
@Test @Test
fun verifyHelpActivity() { fun verifyHelpActivity() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
runOnUiThread { activityRule.activity.navigate(R.id.helpFragment) } runOnUiThread { activityRule.activity.navigate(R.id.helpFragment) }
help { help {
clickOnWhatDoesKiwixDo() clickOnWhatDoesKiwixDo()
@ -49,3 +51,4 @@ class HelpFragmentTest : BaseActivityTest() {
} }
} }
} }
}

View File

@ -18,6 +18,7 @@
package org.kiwix.kiwixmobile.initial.download package org.kiwix.kiwixmobile.initial.download
import android.os.Build
import androidx.core.content.edit import androidx.core.content.edit
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
@ -53,6 +54,7 @@ class InitialDownloadTest : BaseActivityTest() {
@Test @Test
fun initialDownloadTest() { fun initialDownloadTest() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.downloadsFragment) } UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.downloadsFragment) }
initialDownload { initialDownload {
assertLibraryListDisplayed() assertLibraryListDisplayed()
@ -64,6 +66,7 @@ class InitialDownloadTest : BaseActivityTest() {
assertDownloadStart() assertDownloadStart()
} }
} }
}
@After @After
fun setPrefStorageOption() { fun setPrefStorageOption() {

View File

@ -17,6 +17,7 @@
*/ */
package org.kiwix.kiwixmobile.intro package org.kiwix.kiwixmobile.intro
import android.os.Build
import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread
import androidx.test.platform.app.InstrumentationRegistry import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice import androidx.test.uiautomator.UiDevice
@ -29,9 +30,11 @@ class IntroFragmentTest : BaseActivityTest() {
@Test @Test
fun viewIsSwipeableAndNavigatesToMain() { fun viewIsSwipeableAndNavigatesToMain() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
runOnUiThread { activityRule.activity.navigate(R.id.introFragment) } runOnUiThread { activityRule.activity.navigate(R.id.introFragment) }
intro(IntroRobot::swipeLeft) clickGetStarted {} intro(IntroRobot::swipeLeft) clickGetStarted {}
} }
}
@Before @Before
override fun waitForIdle() { override fun waitForIdle() {

View File

@ -19,6 +19,7 @@ package org.kiwix.kiwixmobile.language
import android.Manifest import android.Manifest
import android.app.Instrumentation import android.app.Instrumentation
import android.os.Build
import androidx.core.content.edit import androidx.core.content.edit
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import androidx.test.ext.junit.rules.ActivityScenarioRule import androidx.test.ext.junit.rules.ActivityScenarioRule
@ -67,6 +68,7 @@ class LanguageFragmentTest {
@Test @Test
fun testLanguageFragment() { fun testLanguageFragment() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
UiThreadStatement.runOnUiThread { UiThreadStatement.runOnUiThread {
activityScenarioRule.scenario.onActivity { activityScenarioRule.scenario.onActivity {
it.navigate(R.id.downloadsFragment) it.navigate(R.id.downloadsFragment)
@ -82,3 +84,4 @@ class LanguageFragmentTest {
} }
} }
} }
}

View File

@ -17,6 +17,7 @@
*/ */
package org.kiwix.kiwixmobile.main package org.kiwix.kiwixmobile.main
import android.os.Build
import androidx.core.content.edit import androidx.core.content.edit
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario import androidx.test.core.app.ActivityScenario
@ -49,6 +50,7 @@ class TopLevelDestinationTest : BaseActivityTest() {
@Test @Test
fun testTopLevelDestination() { fun testTopLevelDestination() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
ActivityScenario.launch(KiwixMainActivity::class.java) ActivityScenario.launch(KiwixMainActivity::class.java)
topLevel { topLevel {
clickReaderOnBottomNav { clickReaderOnBottomNav {
@ -77,6 +79,7 @@ class TopLevelDestinationTest : BaseActivityTest() {
pressBack() pressBack()
} }
} }
}
@After @After
fun setIsTestPreference() { fun setIsTestPreference() {

View File

@ -18,6 +18,7 @@
package org.kiwix.kiwixmobile.note package org.kiwix.kiwixmobile.note
import android.os.Build
import androidx.test.internal.runner.junit4.statement.UiThreadStatement import androidx.test.internal.runner.junit4.statement.UiThreadStatement
import androidx.test.platform.app.InstrumentationRegistry import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice import androidx.test.uiautomator.UiDevice
@ -35,6 +36,7 @@ class NoteFragmentTest : BaseActivityTest() {
@Test @Test
fun verifyNoteFragment() { fun verifyNoteFragment() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.notesFragment) } UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.notesFragment) }
note { note {
assertToolbarExist() assertToolbarExist()
@ -43,3 +45,4 @@ class NoteFragmentTest : BaseActivityTest() {
} }
} }
} }
}

View File

@ -17,6 +17,7 @@
*/ */
package org.kiwix.kiwixmobile.search package org.kiwix.kiwixmobile.search
import android.os.Build
import androidx.core.content.edit import androidx.core.content.edit
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
@ -52,6 +53,7 @@ class SearchFragmentTest : BaseActivityTest() {
@Test @Test
fun searchFragmentSimple() { fun searchFragmentSimple() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.libraryFragment) } UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.libraryFragment) }
val loadFileStream = val loadFileStream =
SearchFragmentTest::class.java.classLoader.getResourceAsStream("testzim.zim") SearchFragmentTest::class.java.classLoader.getResourceAsStream("testzim.zim")
@ -91,6 +93,7 @@ class SearchFragmentTest : BaseActivityTest() {
checkZimFileSearchSuccessful(R.id.readerFragment) checkZimFileSearchSuccessful(R.id.readerFragment)
} }
} }
}
@After @After
fun setIsTestPreference() { fun setIsTestPreference() {

View File

@ -18,6 +18,7 @@
package org.kiwix.kiwixmobile.settings package org.kiwix.kiwixmobile.settings
import android.Manifest import android.Manifest
import android.os.Build
import androidx.test.internal.runner.junit4.statement.UiThreadStatement import androidx.test.internal.runner.junit4.statement.UiThreadStatement
import androidx.test.rule.ActivityTestRule import androidx.test.rule.ActivityTestRule
import androidx.test.rule.GrantPermissionRule import androidx.test.rule.GrantPermissionRule
@ -47,14 +48,17 @@ class KiwixSettingsFragmentTest {
@Before @Before
fun setup() { fun setup() {
// Go to IntroFragment // Go to IntroFragment
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
UiThreadStatement.runOnUiThread { activityTestRule.activity.navigate(R.id.introFragment) } UiThreadStatement.runOnUiThread { activityTestRule.activity.navigate(R.id.introFragment) }
intro(IntroRobot::swipeLeft) clickGetStarted { } intro(IntroRobot::swipeLeft) clickGetStarted { }
StandardActions.openDrawer() StandardActions.openDrawer()
StandardActions.enterSettings() StandardActions.enterSettings()
} }
}
@Test @Test
fun testSettingsActivity() { fun testSettingsActivity() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
settingsRobo { settingsRobo {
assertZoomTextViewPresent() assertZoomTextViewPresent()
assertVersionTextViewPresent() assertVersionTextViewPresent()
@ -82,3 +86,4 @@ class KiwixSettingsFragmentTest {
} }
} }
} }
}

View File

@ -19,6 +19,7 @@ package org.kiwix.kiwixmobile.splash
import android.Manifest import android.Manifest
import android.content.Context import android.content.Context
import android.os.Build
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.Espresso import androidx.test.espresso.Espresso
@ -66,6 +67,7 @@ class KiwixSplashActivityTest {
@Test @Test
fun testFirstRun() { fun testFirstRun() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
shouldShowIntro(true) shouldShowIntro(true)
activityScenario.recreate() activityScenario.recreate()
activityScenario.onActivity { activityScenario.onActivity {
@ -86,9 +88,11 @@ class KiwixSplashActivityTest {
) )
} }
} }
}
@Test @Test
fun testNormalRun() { fun testNormalRun() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
shouldShowIntro(false) shouldShowIntro(false)
activityScenario.recreate() activityScenario.recreate()
activityScenario.onActivity { activityScenario.onActivity {
@ -100,6 +104,7 @@ class KiwixSplashActivityTest {
) )
} }
} }
}
@After @After
fun endTest() { fun endTest() {