Skip to content

Commit

Permalink
Merge pull request #6 from YAPP-Github/chore/TNT-62
Browse files Browse the repository at this point in the history
[TNT-62] Lint ์‹œ์Šคํ…œ ์ ์šฉ
  • Loading branch information
hoyahozz authored Jan 3, 2025
2 parents ee081be + f1989d1 commit b81a5ef
Show file tree
Hide file tree
Showing 20 changed files with 930 additions and 18 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/android-ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Android CI
on:
pull_request:

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: set up JDK 17
uses: actions/setup-java@v3
with:
java-version: 17
distribution: zulu
cache: gradle

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
run: ./gradlew build

- name: Run ktlint, detekt
run: ./gradlew ktlintCheck detekt
2 changes: 2 additions & 0 deletions build-logic/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ plugins {
dependencies {
implementation(libs.android.gradlePlugin)
implementation(libs.kotlin.gradlePlugin)
implementation(libs.detekt.plugin)
implementation(libs.ktlint.plugin)
compileOnly(libs.compose.compiler.gradle.plugin)
}

Expand Down
6 changes: 6 additions & 0 deletions build-logic/src/main/kotlin/co/kr/tnt/KotlinAndroid.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package co.kr.tnt

import org.gradle.api.JavaVersion
import org.gradle.api.Project
import org.gradle.api.tasks.compile.JavaCompile
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.provideDelegate
import org.gradle.kotlin.dsl.withType
Expand Down Expand Up @@ -53,4 +54,9 @@ internal fun Project.configureKotlin() {
)
}
}

tasks.withType<JavaCompile>().configureEach {
sourceCompatibility = "17"
targetCompatibility = "17"
}
}
42 changes: 42 additions & 0 deletions build-logic/src/main/kotlin/co/kr/tnt/KotlinLint.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package co.kr.tnt

import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.dependencies
import org.jlleitschuh.gradle.ktlint.KtlintExtension

internal fun Project.configureKtLint() {
extensions.configure<KtlintExtension> {
android.set(true)
verbose.set(true)
outputToConsole.set(true)
additionalEditorconfig.set(
mapOf(
"ktlint_standard_no-wildcard-imports" to "disabled",
"ktlint_standard_filename" to "disabled",
"ktlint_standard_function-naming" to "disabled",
"ktlint_standard_function-signature" to "disabled",
"ktlint_standard_class-naming" to "disabled",
"ktlint_standard_annotation" to "disabled",
"ktlint_standard_blank-line-before-declaration" to "disabled",
"ktlint_standard_string-template-indent" to "disabled",
"ktlint_standard_multiline-expression-wrapping" to "disabled",
"max_line_length" to "120"
)
)
reporters {
reporter(org.jlleitschuh.gradle.ktlint.reporter.ReporterType.PLAIN)
}
}
}

internal fun Project.configureDetekt() {
with(pluginManager) {
apply("io.gitlab.arturbosch.detekt")
}

val libs = extensions.libs
dependencies {
"detektPlugins"(libs.findLibrary("detekt.formatting").get())
}
}
1 change: 1 addition & 0 deletions build-logic/src/main/kotlin/tnt.android.library.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import co.kr.tnt.configureTest

plugins {
id("com.android.library")
id("tnt.verify.lint")
}

configureKotlinAndroid()
Expand Down
1 change: 1 addition & 0 deletions build-logic/src/main/kotlin/tnt.kotlin.library.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import co.kr.tnt.configureTest

plugins {
kotlin("jvm")
id("tnt.verify.lint")
}

configureKotlin()
Expand Down
27 changes: 27 additions & 0 deletions build-logic/src/main/kotlin/tnt.verify.lint.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import co.kr.tnt.configureDetekt
import co.kr.tnt.configureKtLint

plugins {
id("org.jlleitschuh.gradle.ktlint")
}

configureKtLint()
configureDetekt()

tasks.withType<io.gitlab.arturbosch.detekt.Detekt>().configureEach {
// Target version of the generated JVM bytecode. It is used for type resolution.
jvmTarget = JavaVersion.VERSION_17.majorVersion

buildUponDefaultConfig = true // preconfigure defaults
allRules = false // activate all available (even unstable) rules.
parallel = true
config.setFrom(listOf(file("$rootDir/config/detekt/detekt.yml"))) // point to your custom config defining rules to run, overwriting default behavior

reports {
file("$rootDir/build/reports/test/${project.name}/").mkdirs()
html.required.set(true) // observe findings in your browser with structure and code snippets
html.outputLocation.set(file("$rootDir/build/reports/detekt/${project.name}.html"))
xml.required.set(true) // checkstyle like format mainly for integrations like Jenkins
xml.outputLocation.set(file("$rootDir/build/reports/detekt/${project.name}.xml"))
}
}
2 changes: 2 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,6 @@ plugins {
alias(libs.plugins.hilt) apply false
alias(libs.plugins.kotlin.serialization) apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.detekt) apply false
alias(libs.plugins.ktlint)
}
Loading

0 comments on commit b81a5ef

Please sign in to comment.