From 9a211bd6af6bc7421b5718d25894b932534ee042 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EB=B3=91=EC=A4=80?= <58807462+8954sood@users.noreply.github.com> Date: Tue, 26 Mar 2024 20:35:47 +0900 Subject: [PATCH 1/2] Create Android CI --- .github/workflows/ci.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..2f9d481f --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,30 @@ +name: Android CI + +on: + push: + branches: [ "develop" , "main"] + pull_request: + branches: [ "develop" , "main"] + +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: 'temurin' + cache: gradle + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build with Gradle + run: ./gradlew build + + - name: Run spotless + run: ./gradlew spotlessCheck From 41155ae8e180e8fa808a349da282523fc144c778 Mon Sep 17 00:00:00 2001 From: 8954sood <8954sood@naver.com> Date: Tue, 26 Mar 2024 21:22:34 +0900 Subject: [PATCH 2/2] Fix: Add Android Spotless Config --- app/build.gradle.kts | 10 -------- .../gidaechi/seugi/ExampleInstrumentedTest.kt | 8 +++---- .../com/apeun/gidaechi/seugi/MainActivity.kt | 6 ++--- .../apeun/gidaechi/seugi/ui/theme/Color.kt | 2 +- .../apeun/gidaechi/seugi/ui/theme/Theme.kt | 12 +++++----- .../com/apeun/gidaechi/seugi/ui/theme/Type.kt | 8 +++---- .../apeun/gidaechi/seugi/ExampleUnitTest.kt | 5 ++-- .../designsystem/ExampleInstrumentedTest.kt | 24 ------------------- .../gidaechi/designsystem/ExampleUnitTest.kt | 17 ------------- spotless/.editorconfig | 24 +++++++++++++++++++ 10 files changed, 43 insertions(+), 73 deletions(-) delete mode 100644 designsystem/src/androidTest/java/com/apeun/gidaechi/designsystem/ExampleInstrumentedTest.kt delete mode 100644 designsystem/src/test/java/com/apeun/gidaechi/designsystem/ExampleUnitTest.kt create mode 100644 spotless/.editorconfig diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 150a2480..3459e441 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -2,16 +2,6 @@ @Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed plugins { -// alias(libs.plugins.android.application) -// alias(libs.plugins.seugi.android) -// alias(libs.plugins.seugi.android.compose) -// alias(libs.plugins.seugi.android.application) -// alias(libs.plugins.kotlin.android) -// alias(libs.plugins.android.application) -// alias() -// alias(libs.plugins.seugi.android.kotlin) -// alias(libs.plugins.seugi.android.hilt) - alias(libs.plugins.seugi.android.application) alias(libs.plugins.seugi.android.kotlin) alias(libs.plugins.seugi.android.compose) diff --git a/app/src/androidTest/java/com/apeun/gidaechi/seugi/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/apeun/gidaechi/seugi/ExampleInstrumentedTest.kt index 527d6c48..26556499 100644 --- a/app/src/androidTest/java/com/apeun/gidaechi/seugi/ExampleInstrumentedTest.kt +++ b/app/src/androidTest/java/com/apeun/gidaechi/seugi/ExampleInstrumentedTest.kt @@ -1,13 +1,11 @@ package com.apeun.gidaechi.seugi -import androidx.test.platform.app.InstrumentationRegistry import androidx.test.ext.junit.runners.AndroidJUnit4 - +import androidx.test.platform.app.InstrumentationRegistry +import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith -import org.junit.Assert.* - /** * Instrumented test, which will execute on an Android device. * @@ -21,4 +19,4 @@ class ExampleInstrumentedTest { val appContext = InstrumentationRegistry.getInstrumentation().targetContext assertEquals("com.apeun.gidaechi.seugi", appContext.packageName) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/apeun/gidaechi/seugi/MainActivity.kt b/app/src/main/java/com/apeun/gidaechi/seugi/MainActivity.kt index 91710f50..ce89184f 100644 --- a/app/src/main/java/com/apeun/gidaechi/seugi/MainActivity.kt +++ b/app/src/main/java/com/apeun/gidaechi/seugi/MainActivity.kt @@ -20,7 +20,7 @@ class MainActivity : ComponentActivity() { // A surface container using the 'background' color from the theme Surface( modifier = Modifier.fillMaxSize(), - color = MaterialTheme.colorScheme.background + color = MaterialTheme.colorScheme.background, ) { Greeting("Android") } @@ -33,7 +33,7 @@ class MainActivity : ComponentActivity() { fun Greeting(name: String, modifier: Modifier = Modifier) { Text( text = "Hello $name!", - modifier = modifier + modifier = modifier, ) } @@ -43,4 +43,4 @@ fun GreetingPreview() { SeugiTestTheme { Greeting("Android") } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/apeun/gidaechi/seugi/ui/theme/Color.kt b/app/src/main/java/com/apeun/gidaechi/seugi/ui/theme/Color.kt index db1f2d95..101fbaa2 100644 --- a/app/src/main/java/com/apeun/gidaechi/seugi/ui/theme/Color.kt +++ b/app/src/main/java/com/apeun/gidaechi/seugi/ui/theme/Color.kt @@ -8,4 +8,4 @@ val Pink80 = Color(0xFFEFB8C8) val Purple40 = Color(0xFF6650a4) val PurpleGrey40 = Color(0xFF625b71) -val Pink40 = Color(0xFF7D5260) \ No newline at end of file +val Pink40 = Color(0xFF7D5260) diff --git a/app/src/main/java/com/apeun/gidaechi/seugi/ui/theme/Theme.kt b/app/src/main/java/com/apeun/gidaechi/seugi/ui/theme/Theme.kt index cb4a6c25..ec426d88 100644 --- a/app/src/main/java/com/apeun/gidaechi/seugi/ui/theme/Theme.kt +++ b/app/src/main/java/com/apeun/gidaechi/seugi/ui/theme/Theme.kt @@ -18,13 +18,13 @@ import androidx.core.view.WindowCompat private val DarkColorScheme = darkColorScheme( primary = Purple80, secondary = PurpleGrey80, - tertiary = Pink80 + tertiary = Pink80, ) private val LightColorScheme = lightColorScheme( primary = Purple40, secondary = PurpleGrey40, - tertiary = Pink40 + tertiary = Pink40, /* Other default colors to override background = Color(0xFFFFFBFE), @@ -34,7 +34,7 @@ private val LightColorScheme = lightColorScheme( onTertiary = Color.White, onBackground = Color(0xFF1C1B1F), onSurface = Color(0xFF1C1B1F), - */ + */ ) @Composable @@ -42,7 +42,7 @@ fun SeugiTestTheme( darkTheme: Boolean = isSystemInDarkTheme(), // Dynamic color is available on Android 12+ dynamicColor: Boolean = true, - content: @Composable () -> Unit + content: @Composable () -> Unit, ) { val colorScheme = when { dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { @@ -65,6 +65,6 @@ fun SeugiTestTheme( MaterialTheme( colorScheme = colorScheme, typography = Typography, - content = content + content = content, ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/apeun/gidaechi/seugi/ui/theme/Type.kt b/app/src/main/java/com/apeun/gidaechi/seugi/ui/theme/Type.kt index e8033e76..fc635f5e 100644 --- a/app/src/main/java/com/apeun/gidaechi/seugi/ui/theme/Type.kt +++ b/app/src/main/java/com/apeun/gidaechi/seugi/ui/theme/Type.kt @@ -13,8 +13,8 @@ val Typography = Typography( fontWeight = FontWeight.Normal, fontSize = 16.sp, lineHeight = 24.sp, - letterSpacing = 0.5.sp - ) + letterSpacing = 0.5.sp, + ), /* Other default text styles to override titleLarge = TextStyle( fontFamily = FontFamily.Default, @@ -30,5 +30,5 @@ val Typography = Typography( lineHeight = 16.sp, letterSpacing = 0.5.sp ) - */ -) \ No newline at end of file + */ +) diff --git a/app/src/test/java/com/apeun/gidaechi/seugi/ExampleUnitTest.kt b/app/src/test/java/com/apeun/gidaechi/seugi/ExampleUnitTest.kt index d131dbad..0974fb88 100644 --- a/app/src/test/java/com/apeun/gidaechi/seugi/ExampleUnitTest.kt +++ b/app/src/test/java/com/apeun/gidaechi/seugi/ExampleUnitTest.kt @@ -1,9 +1,8 @@ package com.apeun.gidaechi.seugi +import org.junit.Assert.assertEquals import org.junit.Test -import org.junit.Assert.* - /** * Example local unit test, which will execute on the development machine (host). * @@ -14,4 +13,4 @@ class ExampleUnitTest { fun addition_isCorrect() { assertEquals(4, 2 + 2) } -} \ No newline at end of file +} diff --git a/designsystem/src/androidTest/java/com/apeun/gidaechi/designsystem/ExampleInstrumentedTest.kt b/designsystem/src/androidTest/java/com/apeun/gidaechi/designsystem/ExampleInstrumentedTest.kt deleted file mode 100644 index 3f173924..00000000 --- a/designsystem/src/androidTest/java/com/apeun/gidaechi/designsystem/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.apeun.gidaechi.designsystem - -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.apeun.gidaechi.designsystem.test", appContext.packageName) - } -} \ No newline at end of file diff --git a/designsystem/src/test/java/com/apeun/gidaechi/designsystem/ExampleUnitTest.kt b/designsystem/src/test/java/com/apeun/gidaechi/designsystem/ExampleUnitTest.kt deleted file mode 100644 index f19f2d15..00000000 --- a/designsystem/src/test/java/com/apeun/gidaechi/designsystem/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.apeun.gidaechi.designsystem - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} \ No newline at end of file diff --git a/spotless/.editorconfig b/spotless/.editorconfig new file mode 100644 index 00000000..5f3f7cae --- /dev/null +++ b/spotless/.editorconfig @@ -0,0 +1,24 @@ +root = true + +[*] +charset = utf-8 +indent_size = 4 +max_line_length = 160 + +[*.{kt,kts}] +max_line_length = 160 +ktlint_code_style = android_studio +ktlint_standard_function-naming = disabled +ktlint_standard_annotation = disabled +ij_kotlin_allow_trailing_comma_on_call_site=true +ij_kotlin_allow_trailing_comma=true +ktlint_no-wildcard-imports = disabled + + +[**/test/**.kt] +max_line_length = off +ktlint_ignore_back_ticked_identifier = true + +[**/androidTest/**.kt] +max_line_length = off +ktlint_ignore_back_ticked_identifier = true \ No newline at end of file