From 09ad3c10c6509db740108e8d317f71f2c3ba9832 Mon Sep 17 00:00:00 2001 From: Konstantin Aksenov Date: Tue, 25 Jun 2024 15:32:43 +1000 Subject: [PATCH 1/6] feat(ci): add danger-detekt integration --- .danger/pr_detekt.df.kts | 24 ++++++++++++++++++++++++ .github/workflows/pr-checks.yml | 17 +++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 .danger/pr_detekt.df.kts diff --git a/.danger/pr_detekt.df.kts b/.danger/pr_detekt.df.kts new file mode 100644 index 00000000..b4f4f448 --- /dev/null +++ b/.danger/pr_detekt.df.kts @@ -0,0 +1,24 @@ +@file:DependsOn("io.github.vacxe.danger.kotlin:detekt:1.1.0") + +import systems.danger.kotlin.* +import systems.danger.kotlin.models.github.* +import io.github.vacxe.danger.kotlin.detekt.* +import java.io.File + +val detektPlugin = DetektPlugin { it.removePrefix("/home/runner/work/Kakao/Kakao/") } +register.plugin(detektPlugin) + +danger(args) { + detektReport() +} + +fun detektReport() { + val detektReportFile = File("build/reports/detekt/detekt.xml") + if (!detektReportFile.exists()) { + warn( + "Detekt report not exist", + ) + } else { + detektPlugin.parseAndReport(detektReportFile) + } +} diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index 54964f4e..01ad02d3 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -11,9 +11,24 @@ jobs: with: distribution: "temurin" java-version: 17 + cache: gradle - name: detekt run: | ./gradlew clean detekt + - name: Upload Detekt Artifacts + uses: actions/upload-artifact@v4 + if: always() + with: + name: detektArtifacts + path: build/reports/detekt + - name: Danger + uses: danger/kotlin@1.3.1 + if: always() + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + dangerfile: ".danger/pr_detekt.df.kts" + args: "--failOnErrors --no-publish-check" assemble-debug-apk: needs: [ detekt ] @@ -26,6 +41,7 @@ jobs: with: distribution: "temurin" java-version: 17 + cache: gradle - name: Assemble Debug APK run: bash ./gradlew sample:assembleDebug - name: Upload app APK @@ -45,6 +61,7 @@ jobs: with: distribution: "temurin" java-version: 17 + cache: gradle - name: Assemble Instrumental APK run: bash ./gradlew sample:assembleDebugAndroidTest - name: Upload app APK From fd7edfd89913eec0429f18e465dd435353068242 Mon Sep 17 00:00:00 2001 From: Konstantin Aksenov Date: Sun, 7 Jul 2024 15:51:33 +1000 Subject: [PATCH 2/6] feat(core): prepare release --- gradle/libs.versions.toml | 27 ++++++++++--------- gradle/wrapper/gradle-wrapper.properties | 2 +- kakao/build.gradle.kts | 2 ++ .../kakaocup/kakao/common/views/KBaseView.kt | 4 +-- .../kakaocup/kakao/progress/PreciseSwipe.kt | 2 +- kakao/version | 2 +- 6 files changed, 22 insertions(+), 17 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 03b358d7..e59eed52 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,36 +1,39 @@ [versions] -gradle = "8.5" +gradle = "8.8" jvmVersion = "17" targetSdk = "34" compileSdk = "34" -minSdk = "14" +minSdk = "21" -agpVersion = "8.2.1" -kotlinVersion = "1.9.21" +agpVersion = "8.5.0" +kotlinVersion = "2.0.0" dokkaVersion = "1.9.10" -appcompatVersion = "1.6.1" +appcompatVersion = "1.7.0" recyclerviewVersion = "1.3.2" -viewPager2Version = "1.0.0" +viewPager2Version = "1.1.0" swiperefreshlayoutVersion = "1.1.0" -annotationVersion = "1.3.0" -testRunnerVersion = "1.5.2" -testRulesVersion = "1.5.0" +annotationVersion = "1.6.0" +testRunnerVersion = "1.6.1" +testRulesVersion = "1.6.1" -espressoVersion = "3.5.1" +espressoVersion = "3.6.1" junitVersion = "4.13.2" -junitExtVersion = "1.1.5" +junitExtVersion = "1.2.1" multidexVersion = "2.0.1" -materialVersion = "1.11.0" +materialVersion = "1.12.0" detekt = "1.17.1" +guavaVersion = "33.2.1-android" + githubApiVersion = "1.318" [libraries] com-android-tools-build-gradle = { group = "com.android.tools.build", name = "gradle", version.ref = "agpVersion" } +guava = { module = "com.google.guava:guava", version.ref = "guavaVersion" } org-jetbrains-kotlin-kotlinGradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlinVersion" } com-google-android-material = { group = "com.google.android.material", name = "material", version.ref = "materialVersion" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 829e1a5a..8b580b94 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/kakao/build.gradle.kts b/kakao/build.gradle.kts index 3323534a..a1f8f33b 100644 --- a/kakao/build.gradle.kts +++ b/kakao/build.gradle.kts @@ -24,6 +24,8 @@ dependencies { implementation(libs.androidx.multidex.multidex) + implementation(libs.guava) + dokkaHtmlPlugin(libs.org.jetbrains.dokka.kotlinAsJavaPlugin) } diff --git a/kakao/src/main/kotlin/io/github/kakaocup/kakao/common/views/KBaseView.kt b/kakao/src/main/kotlin/io/github/kakaocup/kakao/common/views/KBaseView.kt index 23b7f11a..e1115024 100644 --- a/kakao/src/main/kotlin/io/github/kakaocup/kakao/common/views/KBaseView.kt +++ b/kakao/src/main/kotlin/io/github/kakaocup/kakao/common/views/KBaseView.kt @@ -30,8 +30,8 @@ import org.hamcrest.Matchers * @param T Type of your custom view. Needs to be defined to enable invoke() and perform() for descendants */ @KakaoDslMarker -open class KBaseView : KDSLView, BaseActions, BaseAssertions, Interceptable { - override val view: ViewInteractionDelegate +abstract class KBaseView : KDSLView, BaseActions, BaseAssertions, Interceptable { + final override val view: ViewInteractionDelegate override var root: Matcher = RootMatchers.DEFAULT /** diff --git a/kakao/src/main/kotlin/io/github/kakaocup/kakao/progress/PreciseSwipe.kt b/kakao/src/main/kotlin/io/github/kakaocup/kakao/progress/PreciseSwipe.kt index b80966a2..95890d83 100644 --- a/kakao/src/main/kotlin/io/github/kakaocup/kakao/progress/PreciseSwipe.kt +++ b/kakao/src/main/kotlin/io/github/kakaocup/kakao/progress/PreciseSwipe.kt @@ -7,7 +7,7 @@ import android.util.Log import androidx.test.espresso.UiController import androidx.test.espresso.action.MotionEvents import androidx.test.espresso.action.Swiper -import androidx.test.espresso.core.internal.deps.guava.base.Preconditions.checkElementIndex +import com.google.common.base.Preconditions.checkElementIndex object PreciseSwipe : Swiper { override fun sendSwipe( diff --git a/kakao/version b/kakao/version index d5c0c991..40c341bd 100644 --- a/kakao/version +++ b/kakao/version @@ -1 +1 @@ -3.5.1 +3.6.0 From 7b19deccf37fb3e77db4abec1720619c0f711bfa Mon Sep 17 00:00:00 2001 From: Konstantin Aksenov Date: Tue, 23 Jul 2024 16:06:41 +1000 Subject: [PATCH 3/6] fix(core): add support for jvm toolchain 8 --- buildSrc/src/main/kotlin/convention.library.gradle.kts | 4 ++++ gradle/libs.versions.toml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/convention.library.gradle.kts b/buildSrc/src/main/kotlin/convention.library.gradle.kts index 66f58bf6..61134b62 100644 --- a/buildSrc/src/main/kotlin/convention.library.gradle.kts +++ b/buildSrc/src/main/kotlin/convention.library.gradle.kts @@ -3,3 +3,7 @@ plugins { id("convention.android-base") id("convention.kotlin") } + +kotlin { + jvmToolchain(8) +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e59eed52..ce47c99c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] gradle = "8.8" -jvmVersion = "17" +jvmVersion = "8" targetSdk = "34" compileSdk = "34" From 159190e229857b1d620ead1e8ce82419353b4bf3 Mon Sep 17 00:00:00 2001 From: Konstantin Aksenov Date: Wed, 24 Jul 2024 09:33:47 +1000 Subject: [PATCH 4/6] Update version --- kakao/version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kakao/version b/kakao/version index 40c341bd..9575d51b 100644 --- a/kakao/version +++ b/kakao/version @@ -1 +1 @@ -3.6.0 +3.6.1 From 4ff09f3c5c740888ee455faa58df0639e29a34dc Mon Sep 17 00:00:00 2001 From: Konstantin Aksenov Date: Fri, 26 Jul 2024 09:48:09 +1000 Subject: [PATCH 5/6] Update libs.versions.toml --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ce47c99c..e7f00cdb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ minSdk = "21" agpVersion = "8.5.0" kotlinVersion = "2.0.0" -dokkaVersion = "1.9.10" +dokkaVersion = "1.9.20" appcompatVersion = "1.7.0" recyclerviewVersion = "1.3.2" viewPager2Version = "1.1.0" From 08e3995c5ada759c92004d0663ae71a331cae777 Mon Sep 17 00:00:00 2001 From: Masatoshi Kubode Date: Fri, 2 Aug 2024 16:19:38 +0900 Subject: [PATCH 6/6] Remove Guava dependency --- gradle/libs.versions.toml | 3 --- kakao/build.gradle.kts | 2 -- .../kotlin/io/github/kakaocup/kakao/progress/PreciseSwipe.kt | 5 ++--- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e7f00cdb..7e2de196 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,13 +27,10 @@ materialVersion = "1.12.0" detekt = "1.17.1" -guavaVersion = "33.2.1-android" - githubApiVersion = "1.318" [libraries] com-android-tools-build-gradle = { group = "com.android.tools.build", name = "gradle", version.ref = "agpVersion" } -guava = { module = "com.google.guava:guava", version.ref = "guavaVersion" } org-jetbrains-kotlin-kotlinGradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlinVersion" } com-google-android-material = { group = "com.google.android.material", name = "material", version.ref = "materialVersion" } diff --git a/kakao/build.gradle.kts b/kakao/build.gradle.kts index a1f8f33b..3323534a 100644 --- a/kakao/build.gradle.kts +++ b/kakao/build.gradle.kts @@ -24,8 +24,6 @@ dependencies { implementation(libs.androidx.multidex.multidex) - implementation(libs.guava) - dokkaHtmlPlugin(libs.org.jetbrains.dokka.kotlinAsJavaPlugin) } diff --git a/kakao/src/main/kotlin/io/github/kakaocup/kakao/progress/PreciseSwipe.kt b/kakao/src/main/kotlin/io/github/kakaocup/kakao/progress/PreciseSwipe.kt index 95890d83..c45cb365 100644 --- a/kakao/src/main/kotlin/io/github/kakaocup/kakao/progress/PreciseSwipe.kt +++ b/kakao/src/main/kotlin/io/github/kakaocup/kakao/progress/PreciseSwipe.kt @@ -7,7 +7,6 @@ import android.util.Log import androidx.test.espresso.UiController import androidx.test.espresso.action.MotionEvents import androidx.test.espresso.action.Swiper -import com.google.common.base.Preconditions.checkElementIndex object PreciseSwipe : Swiper { override fun sendSwipe( @@ -53,8 +52,8 @@ object PreciseSwipe : Swiper { } private fun interpolate(start: FloatArray, end: FloatArray, steps: Int): Array { - checkElementIndex(1, start.size) - checkElementIndex(1, end.size) + require(1 in start.indices) + require(1 in end.indices) val res = Array(steps) { FloatArray(2) }