Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
be92fe1
[#541] Update detekt rules for Jetpack Compose
ryan-conway Nov 3, 2023
391946a
[#541] Handle unstable collections detekt warning
ryan-conway Nov 3, 2023
815f42a
[#538] Move detekt plugin declaration to Plugins file
ryan-conway Dec 15, 2023
bfda1aa
[#538] Apply new detekt rules to sample-compose
ryan-conway Dec 15, 2023
2f02422
[#599] Update upload artifact to v4
ryan-conway Feb 6, 2025
2fb393c
Merge pull request #600 from nimblehq/chore/599-update-upload-artifac…
ryan-conway Feb 6, 2025
9e6686c
[Chore] Bump version to 3.32.0
ryan-conway Feb 3, 2025
2d0de3c
Merge pull request #598 from nimblehq/chore/bump-version-to-3.32.0
ryan-conway Feb 6, 2025
f649f3d
[#587] Update template-compose kotlin 2.1.0 and kapt to ksp
ryan-conway Feb 7, 2025
18281c8
[#587] Update sample-compose kotlin 2.1.0 and kapt to ksp
ryan-conway Feb 7, 2025
7b83b45
Merge pull request #601 from nimblehq/feature/587-migrate-to-latest-k…
ryan-conway Feb 26, 2025
ee1c684
[#608] Update actions/cache to v4
kaungkhantsoe Mar 11, 2025
624d206
Merge pull request #609 from nimblehq/chore/608-update-actions-cache-…
ryan-conway Mar 11, 2025
d91fffa
[#602] Update dependency versions
kaungkhantsoe Feb 26, 2025
ce96d87
[#603] Refactor to use Material3
kaungkhantsoe Feb 27, 2025
52cc9a8
[#606] Fix wrong imports and androidTest fail
kaungkhantsoe Mar 10, 2025
55e73e6
[#606] Remove redundant imports
kaungkhantsoe Mar 10, 2025
1772be0
[#602] Update additional dependencies
kaungkhantsoe Mar 11, 2025
30c94b7
Merge pull request #604 from nimblehq/chore/602-update-outdated-depen…
ryan-conway Mar 13, 2025
ecfc267
[Chore] Remove chornerman from CODEOWNERS
ryan-conway Jun 6, 2025
e64e201
Merge pull request #605 from nimblehq/chore/603-update-to-use-materia…
ryan-conway Jun 6, 2025
8941fa3
[#582] Migrate to Kover 0.9.1 https://github.com/Kotlin/kotlinx-kover…
luongvo Jul 7, 2025
edb3488
Merge pull request #613 from nimblehq/chore/update-codeowners
ryan-conway Sep 11, 2025
f9fa97d
[Chore] Update CODEOWNERS
hoangnguyen92dn Oct 21, 2025
80db41c
Merge pull request #616 from nimblehq/chore/update-codeowners
hoangnguyen92dn Oct 22, 2025
c53aa5a
Merge branch 'develop' into feature/541-integrate-the-twitter-jetpack…
hoangnguyen92dn Jan 12, 2026
570ba90
[#541] [#538] Solve code review comments
hoangnguyen92dn Jan 12, 2026
a4b010e
[#541] [#538] Ignore LongMethod and LongParameterList for Composable …
hoangnguyen92dn Jan 13, 2026
ceb3043
[#541] [#538] Ignore LongParameterList for ViewModel
hoangnguyen92dn Jan 13, 2026
2357db0
Merge pull request #556 from nimblehq/feature/541-integrate-the-twitt…
hoangnguyen92dn Jan 13, 2026
ec22177
[#606] Update mockk version for template compose and change comment a…
kaungkhantsoe Jan 19, 2026
ce180d3
Merge pull request #615 from nimblehq/chore/582-migrate-to-kover-0.8
hoangnguyen92dn Jan 22, 2026
b8a3ed9
Merge pull request #607 from nimblehq/bug/606-fix-incorrect-imports-i…
hoangnguyen92dn Jan 22, 2026
ebe9338
[#493] Create New files for Danger integration in template android
thawzintoe-ptut Jun 26, 2024
0e3cc73
[#493] Refactor Dangerfile and Gemfile to streamline configuration an…
thawzintoe-ptut Nov 24, 2025
e640879
[#493] Enhance Kover report integration in Dangerfile with improved p…
thawzintoe-ptut Nov 24, 2025
b2eda8e
[#493] Implement setup-ruby composite action and integrate into workf…
thawzintoe-ptut Nov 24, 2025
c9955dd
[#493] Remove hardcoded Ruby version from Danger setup in workflow
thawzintoe-ptut Nov 24, 2025
bc03faa
[#493] Update Gemfile.lock to support Ruby 3.x and resolve CI exit co…
thawzintoe-ptut Nov 24, 2025
bc5c045
[#493] Improve Android Lint report handling in Dangerfile to warn if …
thawzintoe-ptut Nov 28, 2025
6b6ed64
[#493] Integrate Android Lint into the build process and update CI wo…
thawzintoe-ptut Nov 28, 2025
eb54d18
[#493] Add warning for missing Detekt report in Dangerfile
thawzintoe-ptut Nov 28, 2025
0ff08c4
[#493] Refactor Dangerfile and CI configuration to improve report han…
thawzintoe-ptut Jan 29, 2026
83e1eb4
[#493] Update Dangerfile and CI workflow to use updated report paths …
thawzintoe-ptut Jan 29, 2026
78fa4f6
[#493] Add Kover report existence check in Dangerfile and update chec…
thawzintoe-ptut Jan 29, 2026
7685b78
Merge pull request #579 from nimblehq/feature/493-integrate-danger-to…
hoangnguyen92dn Jan 30, 2026
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
4 changes: 2 additions & 2 deletions .cicdtemplate/.bitrise/bitrise.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ workflows:
# Execute UnitTest
- android-unit-test@1:
inputs:
- arguments: koverHtmlReport
- arguments: koverHtmlReportCustom
- variant: "$VARIANT"
- module: "$MODULE"
- report_path_pattern: '*build/reports'
Expand All @@ -61,7 +61,7 @@ workflows:
# Upload Kover report to Apps & Artifacts for later downloading
- deploy-to-bitrise-io@1:
inputs:
- deploy_path: "$PROJECT_LOCATION/app/build/reports/kover/html/index.html"
- deploy_path: "$PROJECT_LOCATION/app/build/reports/kover/htmlCustom/index.html"
- is_enable_public_page: 'false'
- is_compress: 'true'
- notify_user_groups: none
Expand Down
2 changes: 1 addition & 1 deletion .cicdtemplate/.codemagic/codemagic.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ definitions:
script: ./gradlew detekt
- &unit_test
name: Run unit tests
script: ./gradlew koverHtmlReport
script: ./gradlew koverHtmlReportCustom
artifacts:
- &artifacts_test_report app/build/reports/kover/
- &artifacts_staging_apk app/build/outputs/apk/staging/debug/app-staging-debug.apk
Expand Down
26 changes: 26 additions & 0 deletions .cicdtemplate/.github/actions/setup-ruby/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Set up Ruby with Bundler Cache
description: Install Ruby and bundle dependencies with caching support.

inputs:
ruby-version:
description: Ruby version to install.
required: false
default: '3.3.0'
working-directory:
description: Directory where bundler should run.
required: false
default: '.'
bundler-cache:
description: Enable bundler cache to execute `bundle install` and cache installed gems automatically.
required: false
default: 'true'

runs:
using: composite
steps:
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ inputs.ruby-version }}
bundler-cache: ${{ inputs.bundler-cache }}
working-directory: ${{ inputs.working-directory }}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
uses: actions/checkout@v4

- name: Cache Gradle
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: |
~/.gradle/caches/modules-*
Expand All @@ -42,16 +42,16 @@ jobs:
run: ./gradlew detekt

- name: Archive Detekt reports
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: DetektReports
path: build/reports/detekt/

- name: Run unit tests with Kover
run: ./gradlew koverHtmlReport
run: ./gradlew koverHtmlReportCustom

- name: Archive code coverage reports
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: CodeCoverageReports
path: app/build/reports/kover/
Expand Down
26 changes: 3 additions & 23 deletions .cicdtemplate/.github/workflows/review_pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
uses: actions/checkout@v4

- name: Cache Gradle
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: |
~/.gradle/caches/modules-*
Expand All @@ -41,30 +41,10 @@ jobs:
run: ./gradlew lint

- name: Run unit tests with Kover
run: ./gradlew koverXmlReport
run: ./gradlew koverXmlReportCustom

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '2.7'

- name: Cache gems
uses: actions/cache@v2
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-

- name: Install Bundle and check environment versions
run: |
echo 'Install Bundle'
bundle config path vendor/bundle
bundle install
echo 'Check environment setup versions'
ruby --version
gem --version
bundler --version
uses: ./.github/actions/setup-ruby

- name: Run Danger
env:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
uses: actions/checkout@v4

- name: Cache Gradle
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: |
~/.gradle/caches/modules-*
Expand All @@ -49,16 +49,16 @@ jobs:
run: ./gradlew detekt

- name: Archive Detekt reports
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: DetektReports
path: build/reports/detekt/

- name: Run unit tests with Kover
run: ./gradlew koverHtmlReport
run: ./gradlew koverHtmlReportCustom

- name: Archive code coverage reports
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: always()
with:
name: CodeCoverageReports
Expand Down
70 changes: 70 additions & 0 deletions .cicdtemplate/Dangerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Make it more obvious that a PR is a work in progress and shouldn't be merged yet
warn("PR is classified as Work in Progress") if github.pr_title.include? "WIP"

# Warn when there is a big PR
warn("Big PR") if git.lines_of_code > 500

# Warn to encourage a PR description
warn("Please provide a summary in the PR description to make it easier to review") if github.pr_body.length == 0

# Warn to encourage that labels should have been used on the PR
warn("Please add labels to this PR") if github.pr_labels.empty?

# ------------------------------------------------------------------------------
# Commit Quality Checks
# ------------------------------------------------------------------------------

# Check commits lint and warn on all checks (instead of failing)
commit_lint.check warn: :all, disable: [:subject_length]

# ------------------------------------------------------------------------------
# Code Quality Checks - Detekt
# ------------------------------------------------------------------------------

detekt_dir = "**/build/reports/detekt/detekt.xml"
detekt_reports = Dir[detekt_dir]

if detekt_reports.any?
detekt_reports.each do |file_name|
kotlin_detekt.skip_gradle_task = true
kotlin_detekt.report_file = file_name
kotlin_detekt.detekt(inline_mode: true)
end
else
warn("Detekt report not found. Please run `./gradlew detekt` before creating a PR.")
end

# ------------------------------------------------------------------------------
# Code Quality Checks - Android Lint
# ------------------------------------------------------------------------------

lint_dir = "**/**/build/reports/lint/lint-result.xml"
lint_reports = Dir[lint_dir]

if lint_reports.any?
lint_reports.each do |file_name|
android_lint.skip_gradle_task = true
android_lint.report_file = file_name
android_lint.lint(inline_mode: true)
end
else
warn("Android Lint report not found. Please run `./gradlew lint` before creating a PR.")
end

# ------------------------------------------------------------------------------
# Test Coverage Checks - Kover
# ------------------------------------------------------------------------------

kover_file = "app/build/reports/kover/reportCustom.xml"

if File.exist?(kover_file)
markdown "## Kover Coverage Report"
shroud.reportKover moduleName: "Unit Tests",
file: kover_file,
totalProjectThreshold: 80,
modifiedFileThreshold: 95,
failIfUnderProjectThreshold: false,
failIfUnderFileThreshold: false
else
warn("Kover coverage report not found at #{kover_file}. Please run `./gradlew koverXmlReportCustom` before creating a PR.")
end
16 changes: 16 additions & 0 deletions .cicdtemplate/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

# Core Danger functionality
gem 'danger'

# Code quality plugins
gem 'danger-android_lint' # Android Lint integration
gem 'danger-commit_lint' # Commit message validation
gem 'danger-kotlin_detekt' # Detekt static analysis integration

# Test coverage plugin
gem 'danger-shroud' # Kover test coverage reporting
4 changes: 2 additions & 2 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Team
# @ryan-conway is the Team Lead and the others are team members
* @AVI5HEK @chornerman @eeeeaa @hoangnguyen92dn @Johnsonmaung @kaungkhantsoe @luongvo @manh-t @minhnimble @RkNaing @ryan-conway @sleepylee @thawzintoe-ptut @toby-thanathip @win-than-htike
# @hoangnguyen92dn is the Team Lead and the others are team members
* @AVI5HEK @chuu-thet @eeeeaa @kaungkhantsoe @luongvo @manh-t @minhnimble @RkNaing @ryan-conway @sleepylee @thawzintoe-ptut @toby-thanathip @win-than-htike @hoangnguyen92dn

# Engineering Leads
CODEOWNERS @nimblehq/engineering-leads
26 changes: 26 additions & 0 deletions .github/actions/setup-ruby/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Set up Ruby with Bundler Cache
description: Install Ruby and bundle dependencies with caching support.

inputs:
ruby-version:
description: Ruby version to install.
required: false
default: '3.3.0'
working-directory:
description: Directory where bundler should run.
required: false
default: '.'
bundler-cache:
description: Enable bundler cache to execute `bundle install` and cache installed gems automatically.
required: false
default: 'true'

runs:
using: composite
steps:
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ inputs.ruby-version }}
bundler-cache: ${{ inputs.bundler-cache }}
working-directory: ${{ inputs.working-directory }}
27 changes: 4 additions & 23 deletions .github/workflows/review_pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ concurrency:
cancel-in-progress: true

jobs:

review_pull_request:
name: Review pull request
runs-on: ubuntu-latest
Expand All @@ -25,7 +26,7 @@ jobs:
uses: actions/checkout@v4

- name: Cache Gradle
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: |
~/.gradle/caches/modules-*
Expand All @@ -47,30 +48,10 @@ jobs:

- name: Run unit tests with Kover on template-compose
working-directory: ./template-compose
run: ./gradlew koverXmlReport
run: ./gradlew koverXmlReportCustom

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '2.7'

- name: Cache gems
uses: actions/cache@v2
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-

- name: Install Bundle and check environment versions
run: |
echo 'Install Bundle'
bundle config path vendor/bundle
bundle install
echo 'Check environment setup versions'
ruby --version
gem --version
bundler --version
uses: ./.github/actions/setup-ruby

- name: Run Danger
env:
Expand Down
16 changes: 9 additions & 7 deletions .github/workflows/run_detekt_and_unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
uses: actions/checkout@v4

- name: Cache Gradle
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: |
~/.gradle/caches/modules-*
Expand All @@ -39,17 +39,17 @@ jobs:
run: ./gradlew detekt

- name: Archive Detekt reports on template-compose
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: DetektReportsTemplateCompose
path: template-compose/build/reports/detekt/

- name: Run unit tests with Kover on template-compose
working-directory: ./template-compose
run: ./gradlew koverHtmlReport
run: ./gradlew koverHtmlReportCustom

- name: Archive code coverage reports on template-compose
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: CodeCoverageReportsTemplateCompose
path: template-compose/app/build/reports/kover/
Expand All @@ -61,17 +61,19 @@ jobs:
run: ./gradlew detekt

- name: Archive Detekt reports on sample-compose
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: DetektReportsTemplateCompose
path: sample-compose/build/reports/detekt/
overwrite: true

- name: Run unit tests with Kover on sample-compose
working-directory: ./sample-compose
run: ./gradlew koverHtmlReport
run: ./gradlew koverHtmlReportCustom

- name: Archive code coverage reports on sample-compose
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: CodeCoverageReportsTemplateCompose
path: sample-compose/app/build/reports/kover/
overwrite: true
2 changes: 1 addition & 1 deletion .github/workflows/verify_newproject_script.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
uses: actions/checkout@v4

- name: Cache Gradle
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: |
~/.gradle/caches/modules-*
Expand Down
Loading