Skip to content

Commit

Permalink
Update project and make it buildable again (#42)
Browse files Browse the repository at this point in the history
- Migrated from jcenter to mavenCentral
- Migrated from Java to Kotlin
- Updated Gradle to 8.4 version 
- Migrated from Fabric.Crashlytics to Firebase
- Removed PMD, Checkstyle configurations as they not needed for Kotlin projects
- Migrated to AndroidX and removed Butterknife in exchange of ViewBinding
- Moved from Coveralls to codecov.io as Coveralls doesn't work well with Kotlin source code
- Updated GitHub Actions CI/CD 
- Updated CircleCI CI/CD
- Updated Bitrise CI/CD
  • Loading branch information
vgaidarji authored Mar 29, 2024
1 parent 947d60b commit 8925f33
Show file tree
Hide file tree
Showing 62 changed files with 537 additions and 979 deletions.
48 changes: 0 additions & 48 deletions .bitrise-with-ui-tests.yml

This file was deleted.

159 changes: 107 additions & 52 deletions .bitrise.yml
Original file line number Diff line number Diff line change
@@ -1,59 +1,114 @@
---
format_version: 1.3.0
format_version: '13'
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
project_type: android
meta:
bitrise.io:
stack: linux-docker-android-22.04
machine_type_id: standard
pipelines:
pipelineBuildTestDistribute:
stages:
- stageBuildTestDistribute: {}
stages:
stageBuildTestDistribute:
workflows:
- build: {}
- androidTest: {}
trigger_map:
- push_branch: "*"
workflow: primary
- pull_request_source_branch: "*"
workflow: primary
- push_branch: "*"
pipeline: pipelineBuildTestDistribute
workflows:
primary:
androidTest:
steps:
- activate-ssh-key@4.0.3:
run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
- git-clone@4.0.12: {}
- install-missing-android-tools@2.2.0: {}
- script@1.1.5:
inputs:Switched to shell script from Gradle runner at bitrise (#36)
- content: |-
#!/usr/bin/env bash
# fail if any commands fails
set -e
# debug log
set -x
unset ANDROID_NDK_HOME
./gradlew assembleDebug testDebug jacocoTestReport checkstyle pmd jdepend lintDebug buildDashboard assembleDebugAndroidTest crashlyticsUploadDistributionDebug -PversionCode=$BITRISE_BUILD_NUMBER -PfabricApiKey=$FABRIC_API_KEY -PfabricApiSecret=$FABRIC_API_SECRET
title: Gradle Build/Test/Analyse/Distribute
# disabled because of https://github.com/vgaidarji/ci-matters/issues/35
# - gradle-runner@1.8.3:
# title: Gradle Build/Test/Analyse/Distribute
# inputs:
# - gradle_task: assembleDebug testDebug jacocoTestReport checkstyle pmd jdepend
# lintDebug buildDashboard crashlyticsUploadDistributionDebug -PversionCode=$BITRISE_BUILD_NUMBER
# -PfabricApiKey=$FABRIC_API_KEY -PfabricApiSecret=$FABRIC_API_SECRET
# - mapping_file_exclude_filter: ''
- gradle-coveralls@1.0.1:
inputs:
- coveralls_task: coveralls -PversionCode=$BITRISE_BUILD_NUMBER -PfabricApiKey=$FABRIC_API_KEY
-PfabricApiSecret=$FABRIC_API_SECRET
- coveralls_repo_token: "$COVERALLS_REPO_TOKEN"
- deploy-to-bitrise-io@1.3.18:
title: Deploy test reports to Bitrise.io
inputs:
- deploy_path: "$BITRISE_SOURCE_DIR/app/build/reports/jacocoTestReport/"
- notify_email_list: ''
- deploy-to-bitrise-io@1.3.18:
title: Deploy APK to Bitrise.io
- activate-ssh-key@4.1:
run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
- git-clone@8.2: {}
- set-java-version@1:
inputs:
- set_java_version: '17'
- install-missing-android-tools@3.2: {}
- android-build-for-ui-testing@0:
inputs:
- variant: "$BUILD_TYPE"
- module: app
- avd-manager@1:
inputs:
- tag: default
- abi: x86_64
- api_level: '34'
- wait-for-android-emulator@1: {}
- android-instrumented-test@0: {}
- deploy-to-bitrise-io@2.7:
title: Deploy build outputs to Bitrise.io
inputs:
- deploy_path: "$BITRISE_SOURCE_DIR/app/build/outputs"
- notify_email_list: ''
- deploy-to-bitrise-io@2.7:
title: Deploy test reports to Bitrise.io
inputs:
- deploy_path: "$BITRISE_SOURCE_DIR/app/build/reports"
- notify_email_list: ''
build:
steps:
- activate-ssh-key@4.1:
run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
- git-clone@8.2: {}
- set-java-version@1:
inputs:
- set_java_version: '17'
- install-missing-android-tools@3.2: {}
- android-build@1:
inputs:
- variant: "$BUILD_TYPE"
- script@1.2:
inputs:
- content: |-
#!/usr/bin/env bash
# fail if any commands fails
set -e
# debug log
set -x
./gradlew testDebug jacocoTestReport lintDebug buildDashboard
title: Check
- script@1:
inputs:
- content: |-
#!/usr/bin/env bash
# fail if any commands fails
set -e
# make pipelines' return status equal the last command to exit with a non-zero status, or zero if all commands exit successfully
set -o pipefail
# debug log
set -x
echo $FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_JSON > $BITRISE_SOURCE_DIR/credentials.json
export FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_JSON=$BITRISE_SOURCE_DIR/credentials.json && ./gradlew appDistributionUploadDebug
title: Distribute To Firebase
- codecov@3:
inputs:
- OS: linux
- CODECOV_TOKEN: "$CODECOV_TOKEN"
- deploy-to-bitrise-io@2.7:
title: Deploy test reports to Bitrise.io
inputs:
- deploy_path: "$BITRISE_SOURCE_DIR/app/build/reports/jacocoTestReport/"
- notify_email_list: ''
- custom-test-results-export@1:
inputs:
- search_pattern: "*/build/test-results/testDebugUnitTest/*"
- test_name: tests
- deploy-to-bitrise-io@2.7:
title: Deploy APK to Bitrise.io
app:
envs:
- opts:
is_expand: false
GRADLE_BUILD_FILE_PATH: build.gradle
- opts:
is_expand: false
GRADLE_TASK: assembleDebug
- opts:
is_expand: false
GRADLEW_PATH: "./gradlew"
- opts:
is_expand: false
GRADLE_BUILD_FILE_PATH: build.gradle
- opts:
is_expand: false
BUILD_TYPE: debug
- opts:
is_expand: false
GRADLEW_PATH: "./gradlew"
98 changes: 54 additions & 44 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,56 +1,60 @@
version: 2
version: 2.1
orbs:
android: circleci/android@2.5.0
codecov: codecov/codecov@4.0.1
jobs:
build:
working_directory: ~/code
docker:
- image: circleci/android:api-28-alpha
environment:
JVM_OPTS: -Xmx3200m
ADB_INSTALL_TIMEOUT: 10
TERM: dumb
executor:
name: android/android-machine
tag: 2024.01.1
steps:
- checkout
- restore_cache:
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}
- android/change-java-version:
java-version: 17
- android/accept-licenses
- run:
name: Accept Android Licenses
command: yes | sdkmanager --licenses && yes | sdkmanager --update || exit 0
name: Build
command: ./gradlew assembleDebug
- run:
name: Download Dependencies
command: ./gradlew clean androidDependencies
- save_cache:
paths:
- ~/.gradle
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}
name: Check
command: ./gradlew testDebug jacocoTestReport lintDebug buildDashboard
- run:
name: Install Android dependencies
name: Distribute
command: |
sdkmanager "platform-tools"
sdkmanager "platforms;android-15"
sdkmanager "platforms;android-21"
sdkmanager "platforms;android-22"
sdkmanager "platforms;android-25"
sdkmanager "build-tools;24.0.3"
sdkmanager "extras;android;m2repository"
sdkmanager "extras;google;m2repository"
sdkmanager "extras;google;google_play_services"
sdkmanager "system-images;android-21;default;armeabi-v7a"
- run:
name: Setup emulator
command: echo "no" | avdmanager create avd -n test -k "system-images;android-21;default;armeabi-v7a"
- run:
name: Launch emulator
command: export LD_LIBRARY_PATH=${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}/emulator/lib64/qt/lib && emulator -avd test -noaudio -no-boot-anim -no-window -accel on
background: true
- run:
name: Wait for emulator
command: circle-android wait-for-boot
- run:
name: Run UI tests
command: ./gradlew connectedAndroidTest
- run:
name: Build and check
command: ./gradlew testDebug jacocoTestReport coveralls checkstyle pmd jdepend lintDebug buildDashboard crashlyticsUploadDistributionDebug -PpreDexEnable=false -PversionCode=$CIRCLE_BUILD_NUM -PfabricApiKey=$FABRIC_API_KEY -PfabricApiSecret=$FABRIC_API_SECRET
echo $FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_JSON_B64 | base64 -d | tee $(pwd)/google-services-account.json > /dev/null
export FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_JSON=$(pwd)/google-services-account.json && ./gradlew appDistributionUploadDebug
- codecov/upload
- store_artifacts:
path: app/build/outputs
destination: outputs
- store_artifacts:
path: app/build/reports
destination: reports
- store_test_results:
path: app/build/test-results
androidTest:
working_directory: ~/code
executor:
name: android/android-machine
tag: 2024.01.1
steps:
- checkout
- android/change-java-version:
java-version: 17
- android/accept-licenses
- android/create-avd:
avd-name: test
install: true
system-image: system-images;android-32;default;x86_64
- android/start-emulator:
avd-name: test
no-window: true
restore-gradle-cache-prefix: v1a
- android/run-tests:
test-command: ./gradlew connectedAndroidTest --stacktrace
- android/save-gradle-cache:
cache-prefix: v1a
- store_artifacts:
path: app/build/outputs
destination: outputs
Expand All @@ -59,3 +63,9 @@ jobs:
destination: reports
- store_test_results:
path: app/build/test-results

workflows:
build_and_test:
jobs:
- build
- androidTest
Loading

0 comments on commit 8925f33

Please sign in to comment.