Build App #78
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
# docs taken from: https://medium.com/google-developer-experts/github-actions-for-android-developers-6b54c8a32f55 | |
# name of workfow | |
name: Build App | |
# Trigger | |
on: | |
schedule: | |
- cron: '0 0 * * 2' | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- name: Update using apt | |
run: | | |
apt update || echo 'apt-update failed' # && apt -y upgrade | |
- name: Use Node.Js ${{matrix.node-version}} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{matrix.node-version}} | |
- name: Install app-center cli with NodeJS | |
run: | | |
npm install -g appcenter-cli | |
- name: Checkout the code | |
uses: actions/checkout@v4 | |
- name: Setup JDK environment | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'adopt' | |
java-version: '17' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Change wrapper permissions | |
run: chmod +x ./src/gradlew | |
- name: Update Version of app | |
uses: chkfung/android-version-actions@v1.2.2 | |
with: | |
gradlePath: ./src/app/build.gradle | |
versionCode: ${{github.run_number}} | |
versionName: 1.0.${{github.run_number}} | |
# Run Build Project | |
- name: Build gradle project | |
run: ./gradlew build | |
working-directory: ./src | |
- name: Build APK Gradle | |
uses: gradle/gradle-build-action@v3 | |
with: | |
arguments: assembleDebug assembleAndroidTest | |
build-root-directory: ./src/ | |
- name: Sign Artifact App | |
id: sign_app | |
uses: r0adkll/sign-android-release@v1 | |
with: | |
releaseDirectory: src/app/build/outputs/apk/debug | |
signingKeyBase64: ${{secrets.SIGNING_KEY_BASE64}} | |
alias: ${{secrets.KEYSTORE_ALIAS}} | |
keyStorePassword: ${{secrets.KEYSTORE_PASSWORD}} | |
keyPassword: ${{secrets.KEY_PASSWORD}} | |
env: | |
BUILD_TOOLS_VERSION: "34.0.0" | |
- name: Upload artifact to App Center for Testing | |
run: | | |
appcenter distribute release --token "${{secrets.APPCENTER_API_KEY}}" --app "Couchbase-Inc./UserProfile-Sync-Android" --group "Collaborators" --file "${{steps.sign_app.outputs.signedReleaseFile}}" --silent --debug --release-notes "${{ github.event.head_commit.message }}" | |
- name: Sign Test Artifact App | |
id: sign_app_uitest | |
uses: r0adkll/sign-android-release@v1 | |
with: | |
releaseDirectory: src/app/build/outputs/apk/androidTest/debug | |
signingKeyBase64: ${{secrets.SIGNING_KEY_BASE64}} | |
alias: ${{secrets.KEYSTORE_ALIAS}} | |
keyStorePassword: ${{secrets.KEYSTORE_PASSWORD}} | |
keyPassword: ${{secrets.KEY_PASSWORD}} | |
env: | |
BUILD_TOOLS_VERSION: "34.0.0" | |
- name: Run UI Tests in App Center | |
run: | | |
rm src/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk | |
mv src/app/build/outputs/apk/androidTest/debug/app-debug-androidTest-signed.apk src/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk | |
appcenter test run espresso --token "${{secrets.APPCENTER_API_KEY}}" --app "Couchbase-Inc./UserProfile-Sync-Android" --devices "Couchbase-Inc./android-devices" --app-path "src/app/build/outputs/apk/debug/app-debug-signed.apk" --test-series "userprofile-sync" --locale "en_US" --build-dir "src/app/build/outputs/apk/androidTest/debug" |