diff --git a/.travis.yml b/.travis.yml index 0a1642481..e0d992ab7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -67,7 +67,8 @@ after_failure: - echo " LOGCAT "; echo "========"; cat logcat.log; pkill -KILL -f adb before_deploy: - - export APP_CHANGELOG=$(cat app/src/kiwix/play/release-notes/en-US/default.txt) +# - export APP_CHANGELOG=$(cat app/src/kiwix/play/release-notes/en-US/default.txt) + - ./gradlew assembleKiwixRelease deploy: @@ -78,11 +79,10 @@ deploy: file_glob: true skip_cleanup: true overwrite: true - body: "$APP_CHANGELOG" +# body: "$APP_CHANGELOG" broken because travis can't escape newlines draft: true on: tags: true - condition: $TRAVIS_BRANCH =~ ^release|master #publish on play store - provider: script @@ -90,4 +90,3 @@ deploy: script: ./gradlew publishKiwixRelease on: tags: true - condition: $TRAVIS_BRANCH =~ ^release|master diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d9119491d..64f7908dd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -40,4 +40,47 @@ Our process for accepting changes operates by [Pull Request (PR)](https://help.g 1. Once you have integrated comments, or waited for feedback, a Lieutenant should merge your changes in! +### Building + +The default build is `debug`, with this variant you can use a debugger while developing. To install the application click the `run` button in Android Studio with the `app` configuration selected while you have a device connected. All other build types but `release` can be ignored, the `release` build is what gets uploaded to the Google Play store and can be built locally with the dummy credentials/keystore provided. + +### Testing + +Unit tests are located in `app/src/test` and to run them locally you +can use the gradle command: + + $ gradlew testKiwixDebugUnitTest + +or the abbreviated: + + $ gradlew tKDUT + +Automated tests that require a connected device (UI related tests) are located in `app/src/androidTest` & `app/src/androidTestKiwix`, to run them locally you can use the gradle command: + + $ gradlew connectedKiwixDebugAndroidTest + +or the abbreviated: + + + $ gradlew cKDAT + +All local test results can be seen under `app/build/reports/` + +### Code coverage + +To generate coverage reports for your unit tests run: + + $ gradlew jacocoTestKiwixDebugUnitTest + +To generate coverage reports for your automated tests run: + + $ gradlew createKiwixDebugCoverageReport + +Code coverage results can be seen under `app/build/reports/` + +### Continous Integration + +All PRs will have all these tests run and a combined coverage report will be attached, if coverage is to go down the PR will be marked failed. On Travis CI the automated tests are run on an emulator. To +learn more about the commands run on the CI please refer to [.travis.yml](https://github.com/kiwix/kiwix-android/blob/master/.travis.yml) + _These guidelines are based on [Tools for Government Data Archiving](https://github.com/edgi-govdata-archiving/overview/blob/master/CONTRIBUTING.md)'s._ diff --git a/README.md b/README.md index 81f3613e8..4dd8590ad 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,6 @@ We utilize different build variants (flavours) to build various different versio ## Libraries Used - [Dagger 2](https://github.com/google/dagger) - A fast dependency injector for Android and Java -- [SquiDb](https://github.com/yahoo/squidb) - SquiDB is a SQLite database library for Android and iOS - [Retrofit](http://square.github.io/retrofit/) - Retrofit turns your REST API into a Java interface - [OkHttp](https://github.com/square/okhttp) - An HTTP+SPDY client for Android and Java applications - [Butterknife](http://jakewharton.github.io/butterknife/) - View "injection" library for Android diff --git a/app/build.gradle b/app/build.gradle index 9cdc629a7..949937eb2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -211,7 +211,7 @@ android { testInstrumentationRunnerArguments.notClass = "com.android.dex.DexIndexOverflowException" multiDexEnabled true vectorDrawables.useSupportLibrary = true - archivesBaseName = "${branchName.replace('/', '-')}-$buildNumber" + archivesBaseName = "$buildNumber" } aaptOptions { @@ -429,13 +429,13 @@ android { experimental = true } - def abiCodes = ['arm64-v8a': 1, 'x86': 2, 'x86_64': 3, 'armeabi-v7a': 4] + def abiCodes = ['arm64-v8a': 5, 'x86': 2, 'x86_64': 3, 'armeabi-v7a': 4] splits { abi { enable true reset() include "x86", "x86_64", 'armeabi-v7a', "arm64-v8a" - universalApk true + universalApk false } } applicationVariants.all { variant -> @@ -449,9 +449,10 @@ android { } play { - enabled = branchName == "master" || branchName == "release" + enabled = true serviceAccountCredentials = file("../google.json") track = "alpha" + releaseStatus = "draft" resolutionStrategy = "fail" }