From 20253222fd5547f941587140d5e1b7d2cbb4ebc9 Mon Sep 17 00:00:00 2001 From: Chorn Date: Thu, 3 Aug 2023 10:18:32 +0700 Subject: [PATCH] [#494] Replace danger-ruby with danger-kotlin --- .github/workflows/review_pull_request.yml | 25 +--------- Dangerfile.df.kts | 60 +++++++++++++++++++++++ 2 files changed, 61 insertions(+), 24 deletions(-) create mode 100644 Dangerfile.df.kts diff --git a/.github/workflows/review_pull_request.yml b/.github/workflows/review_pull_request.yml index 1b5f61fe3..31b3a4870 100644 --- a/.github/workflows/review_pull_request.yml +++ b/.github/workflows/review_pull_request.yml @@ -69,30 +69,7 @@ jobs: working-directory: ./template-compose run: ./gradlew koverMergedXmlReport - - 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 - - name: Run Danger + uses: danger/kotlin@1.2.0 env: DANGER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: bundle exec danger diff --git a/Dangerfile.df.kts b/Dangerfile.df.kts new file mode 100644 index 000000000..317e5d973 --- /dev/null +++ b/Dangerfile.df.kts @@ -0,0 +1,60 @@ +import systems.danger.kotlin.* + +// Make it more obvious that a PR is a work in progress and shouldn't be merged yet +if (github.pr.title.contains("WIP")) { + warn("PR is classed as Work in Progress") +} + +// Warn when there is a big PR +if (git.linesOfCode() > 500) { + warn("Big PR") +} + +// Warn to encourage a PR description +if (github.pr.body.isEmpty()) { + warn("Please provide a summary in the PR description to make it easier to review") +} + +// Warn to encourage that labels should have been used on the PR +if (github.pr.labels.isEmpty()) { + warn("Please add labels to this PR") +} + +// Check commits lint and warn on all checks (instead of failing) +commitLint { + warn = CommitLint.Warnings.ALL + disable = listOf("subject_length") +} + +// Detekt output check +val detektDir = "**/build/reports/detekt/detekt-result.xml" +val detektFiles = glob(detektDir) +detektFiles.forEach { fileName -> + kotlinDetekt { + skipGradleTask = true + reportFile = fileName + detekt(inlineMode = true) + } +} + +// Android Lint output check +val lintDir = "**/**/build/reports/lint/lint-result.xml" +val lintFiles = glob(lintDir) +lintFiles.forEach { fileName -> + androidLint { + skipGradleTask = true + reportFile = fileName + lint(inlineMode = true) + } +} + +// Show Danger test coverage report from Kover for templates +// Report coverage of modified files, warn if total project coverage is under 80% +// or if any modified file's coverage is under 90% +val koverFileTemplateXml = "template-xml/build/reports/kover/merged/xml/report.xml" +markdown("## Kover report for template-xml:") +shroud.reportKover("Template - XML Unit Tests", koverFileTemplateXml, 80, 95, false) + +val koverFileTemplateCompose = "template-compose/build/reports/kover/merged/xml/report.xml" +markdown("## Kover report for template-compose:") +shroud.reportKover("Template - Compose Unit Tests", koverFileTemplateCompose, 80, 95, false)