Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
1222245
docs: update known issues in readme
superus8r May 26, 2025
fa98ce0
nitpick: use kotlin style instead of groovy for sonarqube properties
superus8r May 27, 2025
bb61b2e
bugfix: use the layout.projectDir
superus8r May 27, 2025
65ebd0c
bugfix: hopefully fixed the jacoco report and its file filter
superus8r May 27, 2025
38854c9
bugfix: hopefully fix the sonar paths
superus8r May 27, 2025
1373111
bugfix: explicitly define sonar tests path
superus8r May 27, 2025
533acc4
bugfix: hopefully fix sonar report
superus8r May 27, 2025
2e0f71a
ci: update codecov version for circleci config
superus8r May 27, 2025
d0dd673
ci: downgrade codecov orb because the new one doesn't support the fil…
superus8r May 27, 2025
733436b
ci: hopefully update codecov orb
superus8r May 27, 2025
871a1e7
ci: hopefully fix sonar job on circleci by excluding the test directo…
superus8r May 29, 2025
3051324
chore: update fastlane and its plugins
superus8r May 29, 2025
dd86951
ci: send a slack notification once unit-test action on github runs su…
superus8r May 29, 2025
3e7ad75
ci: hopefully fixed sonar issue by using default source and binary paths
superus8r May 29, 2025
0df5903
ci: use layout.buildDirectory to define sonar config paths
superus8r May 29, 2025
a3a4ee8
ci: update circleci cache keys for gradle and add caching for bundler…
superus8r May 29, 2025
3bbebfd
ci: ensure all dependencies including nokogiri are compatible with Ru…
superus8r May 29, 2025
5670cba
chore: exclude ui files form coverage
superus8r May 29, 2025
fbd7212
Merge pull request #30 from superus8r/chore/DROID-12_FixJacocoUnified…
superus8r May 29, 2025
43428ca
ci: add lint to android-test job
superus8r May 29, 2025
627b03e
refactor: update access modifiers for UserSettingRepositoryAndroidTes…
superus8r May 29, 2025
64d880b
Merge pull request #31 from superus8r/DROID-13_Fix_Sonar_Source_Paths
superus8r Jun 16, 2025
d2d34e6
chore: update gradle (#32)
superus8r Jun 22, 2025
fb846a3
chore: add dependabot config (#33)
superus8r Jun 22, 2025
4ff9fbd
chore(deps): bump com.google.gms:google-services from 4.4.1 to 4.4.2
dependabot[bot] Jun 22, 2025
436c33a
chore(deps): bump com.google.firebase:firebase-bom
dependabot[bot] Jun 22, 2025
fe0333a
ci: Update Github Actions cache keys ot consider version catalog toml…
superus8r Jun 22, 2025
87fe6eb
Merge branch 'develop' into dependabot/gradle/com.google.firebase-fir…
superus8r Jun 22, 2025
64a27c4
Merge branch 'develop' into dependabot/gradle/com.google.gms-google-s…
superus8r Jun 22, 2025
b3c542a
accessibility: add button action descriptions
superus8r Jun 22, 2025
83aa59e
tests: make sure action buttons cannot be clicked or asserted in ui t…
superus8r Jun 22, 2025
5601598
ci: avoid a false true being thrown in case of failing ui tests
superus8r Jun 22, 2025
64e3658
Merge branch 'develop' into tests/DROID-16_Fix_UI_Tests
superus8r Jun 22, 2025
e09020d
chore: hopefully include ui test coverage in the coverage report
superus8r Jun 22, 2025
647c876
ci: consider changes to gradle version catalog toml file in order to …
superus8r Jun 22, 2025
d2896c6
Merge pull request #40 from superus8r/tests/DROID-16_Fix_UI_Tests
superus8r Jun 22, 2025
093bce8
Merge branch 'develop' into dependabot/gradle/com.google.firebase-fir…
superus8r Jun 22, 2025
5b7f885
chore(deps): bump com.google.truth:truth from 1.1.3 to 1.4.4
dependabot[bot] Jun 22, 2025
60f5fec
Merge branch 'develop' into dependabot/gradle/com.google.gms-google-s…
superus8r Jun 22, 2025
2adb5ec
Merge pull request #37 from superus8r/dependabot/gradle/com.google.gm…
superus8r Jun 22, 2025
8eeabdf
Merge branch 'develop' into dependabot/gradle/com.google.firebase-fir…
superus8r Jun 22, 2025
9248dd3
Merge branch 'develop' into dependabot/gradle/com.google.truth-truth-…
superus8r Jun 22, 2025
1bcd4cd
Merge pull request #38 from superus8r/dependabot/gradle/com.google.fi…
superus8r Jun 22, 2025
48327dd
chore(deps): bump coroutines from 1.7.3 to 1.10.2
dependabot[bot] Jun 22, 2025
79bd52b
Merge pull request #35 from superus8r/dependabot/gradle/com.google.tr…
superus8r Jun 22, 2025
0da5d76
Merge branch 'develop' into dependabot/gradle/coroutines-1.10.2
superus8r Jun 22, 2025
769a5f9
Merge pull request #34 from superus8r/dependabot/gradle/coroutines-1.…
superus8r Jun 22, 2025
b7b84d3
chore(deps): bump androidx.datastore:datastore-preferences
dependabot[bot] Jun 23, 2025
27f0fd7
chore(deps): bump androidx.lifecycle:lifecycle-viewmodel-ktx
dependabot[bot] Jun 23, 2025
c017e99
chore(deps): bump org.hamcrest:hamcrest-library from 2.2 to 3.0
dependabot[bot] Jun 23, 2025
5f5ce5b
fix: update order of generating google-services.json file
superus8r Jul 6, 2025
e83f119
Merge branch 'develop' into dependabot/gradle/androidx.lifecycle-life…
superus8r Jul 6, 2025
1781209
Merge pull request #43 from superus8r/dependabot/gradle/androidx.life…
superus8r Jul 6, 2025
1992d16
Merge branch 'develop' into dependabot/gradle/androidx.datastore-data…
superus8r Jul 6, 2025
7ac761a
Merge pull request #41 from superus8r/dependabot/gradle/androidx.data…
superus8r Jul 6, 2025
6775730
Merge branch 'develop' into dependabot/gradle/org.hamcrest-hamcrest-l…
superus8r Jul 6, 2025
af3d276
Merge pull request #44 from superus8r/dependabot/gradle/org.hamcrest-…
superus8r Jul 6, 2025
2288c65
deps: update fastlane
superus8r Jul 8, 2025
08274e4
deps: update appcompat
superus8r Jul 8, 2025
5aec2d5
deps: update lifecycle-runtime-ktx to 2.9.1
superus8r Jul 8, 2025
83be85b
deps: update composeBom to 2025.06.01
superus8r Jul 8, 2025
e872098
deps: update firebaseBom to 33.16.0
superus8r Jul 8, 2025
2440dda
deps: update google-services to 4.4.3 and firebase-crashlytics-gradle…
superus8r Jul 8, 2025
b23d218
Merge pull request #45 from superus8r/deps/update-dependencies
superus8r Jul 8, 2025
cfe5e00
chore: bump versionName to 0.9.85
superus8r Jul 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 17 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
version: 2.1
orbs:
codecov: codecov/codecov@3.2.4
codecov: codecov/codecov@5.4.3
ruby: circleci/[email protected]

commands:
Expand All @@ -9,7 +9,11 @@ commands:
- restore_cache:
key: v1-gradle-wrapper-{{ arch }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}
- restore_cache:
key: v1-gradle-cache-{{ arch }}-{{ checksum "build.gradle" }}
key: v1-gradle-cache-{{ arch }}-{{ checksum "build.gradle.kts" }}-{{ checksum "settings.gradle.kts" }}-{{ checksum "gradle.properties" }}-{{ checksum "app/build.gradle.kts" }}-{{ checksum "gradle/libs.versions.toml" }}
restore_bundler_cache:
steps:
- restore_cache:
key: v1-bundler-cache-{{ checksum "Gemfile.lock" }}

save_gradle_cache:
steps:
Expand All @@ -20,7 +24,13 @@ commands:
- save_cache:
paths:
- ~/.gradle/caches
key: v1-gradle-cache-{{ arch }}-{{ checksum "build.gradle" }}
key: v1-gradle-cache-{{ arch }}-{{ checksum "build.gradle.kts" }}-{{ checksum "settings.gradle.kts" }}-{{ checksum "gradle.properties" }}-{{ checksum "app/build.gradle.kts" }}-{{ checksum "gradle/libs.versions.toml" }}
save_bundler_cache:
steps:
- save_cache:
paths:
- vendor/bundle
key: v1-bundler-cache-{{ checksum "Gemfile.lock" }}

executors:
android-machine:
Expand All @@ -37,18 +47,21 @@ jobs:
steps:
- checkout
- restore_gradle_cache
- restore_bundler_cache
- ruby/install-deps:
with-cache: true
- run:
name: Fastlane - run all tests with coverage report
command: |
bundle exec fastlane testDev
bundle exec fastlane lint
- save_gradle_cache
- save_bundler_cache
- run:
name: Analyze on SonarCloud
command: ./gradlew lintDebug sonar
- codecov/upload:
file: app/build/mergedReportDir/jacocoTestReport/jacocoTestReport.xml
files: app/build/mergedReportDir/jacocoTestReport/jacocoTestReport.xml
- store_test_results:
path: app/build/test-results/testDebugUnitTest
- store_artifacts:
Expand Down
13 changes: 13 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
version: 2
updates:
- package-ecosystem: "gradle"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5

- package-ecosystem: "bundler"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
76 changes: 67 additions & 9 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
unit-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1'
Expand All @@ -21,22 +21,22 @@ jobs:
uses: actions/cache@v3
with:
path: ~/.gradle/wrapper
key: ${{ runner.OS }}-gradle-wrapper-cache-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
key: ${{ runner.OS }}-gradle-wrapper-cache-${{ hashFiles('build.gradle.kts', 'settings.gradle.kts', 'gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml') }}
restore-keys: |
${{ runner.OS }}-gradle-wrapper-cache-
- name: Cache Gradle caches
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: ${{ runner.OS }}-gradle-caches-cache-${{ hashFiles('build.gradle') }}
key: ${{ runner.OS }}-gradle-caches-cache-${{ hashFiles('build.gradle.kts', 'settings.gradle.kts', 'gradle/libs.versions.toml') }}
restore-keys: |
${{ runner.OS }}-gradle-caches-cache-
- name: generate ksProp file
run: ./gradlew generateKsPropFile
- name: generate google-services.json file
run: ./gradlew generateGoogleServicesJson
env:
GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}
run: ./gradlew generateGoogleServicesJson
- name: setup fastlane
run: bundle install
- name: run unit tests
Expand All @@ -50,12 +50,26 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- name: set up JDK 17
uses: actions/setup-java@v1
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Cache Gradle wrapper
uses: actions/cache@v3
with:
path: ~/.gradle/wrapper
key: ${{ runner.OS }}-gradle-wrapper-cache-${{ hashFiles('build.gradle.kts', 'settings.gradle.kts', 'gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml') }}
restore-keys: |
${{ runner.OS }}-gradle-wrapper-cache-
- name: Cache Gradle caches
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: ${{ runner.OS }}-gradle-caches-cache-${{ hashFiles('build.gradle.kts', 'settings.gradle.kts', 'gradle/libs.versions.toml') }}
restore-keys: |
${{ runner.OS }}-gradle-caches-cache-
- name: generate ksProp file
run: ./gradlew generateKsPropFile
- name: generate google-services.json file
Expand All @@ -74,12 +88,26 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Cache Gradle wrapper
uses: actions/cache@v3
with:
path: ~/.gradle/wrapper
key: ${{ runner.OS }}-gradle-wrapper-cache-${{ hashFiles('build.gradle.kts', 'settings.gradle.kts', 'gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml') }}
restore-keys: |
${{ runner.OS }}-gradle-wrapper-cache-
- name: Cache Gradle caches
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: ${{ runner.OS }}-gradle-caches-cache-${{ hashFiles('build.gradle.kts', 'settings.gradle.kts', 'gradle/libs.versions.toml') }}
restore-keys: |
${{ runner.OS }}-gradle-caches-cache-
- name: generate ksProp file
run: ./gradlew generateKsPropFile
- name: generate google-services.json file
Expand All @@ -91,8 +119,38 @@ jobs:
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: run tests
- name: run tests with screen record
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 29
script: ./gradlew connectedCheck
script: |
adb shell screenrecord /sdcard/ui-test.mp4 &
SCREENRECORD_PID=$!
./gradlew connectedCheck
kill $SCREENRECORD_PID || true
adb pull /sdcard/ui-test.mp4 ./ui-test.mp4 || true
- name: Upload UI test video
uses: actions/upload-artifact@v4
with:
name: ui-test-video
path: ./ui-test.mp4
- name: Upload UI test results
if: always()
uses: actions/upload-artifact@v4
with:
name: ui-test-results
path: app/build/reports/androidTests/connected/

notify-slack:
needs: unit-test
runs-on: ubuntu-latest
if: always() # Runs regardless of success or failure of unit-test
steps:
- name: Send Slack notification
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_GITHUB_BUILD_INFO }}
run: |
STATUS="${{ needs.unit-test.result }}"
curl -X POST -H 'Content-type: application/json' \
--data "{\"text\":\"Unit tests completed: $STATUS\"}" \
$SLACK_WEBHOOK_URL
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
source "https://rubygems.org"

gem "fastlane"
gem "fastlane", ">= 2.220.0"
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)
Loading
Loading