diff --git a/.github/workflows/ci-java.yml b/.github/workflows/ci-java.yml new file mode 100644 index 00000000..1a4faaa2 --- /dev/null +++ b/.github/workflows/ci-java.yml @@ -0,0 +1,47 @@ +name: CI (Java) + +on: + push: + branches: + - main + paths: + - "apps/user-service/**" + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + branches: + - main + - develop + - release/** + paths: + - "apps/user-service/**" + +permissions: + contents: read + packages: write + security-events: write + checks: write + pull-requests: write + +jobs: + spotless-check: + name: Lint Check + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + cache: 'gradle' + + - name: Grant execute permission for Gradle wrapper + run: chmod +x ./gradlew + working-directory: apps/user-service + + - name: Run Spotless Check + run: ./gradlew spotlessCheck + working-directory: apps/user-service \ No newline at end of file diff --git a/apps/user-service/build.gradle b/apps/user-service/build.gradle index f373d429..17c949f3 100644 --- a/apps/user-service/build.gradle +++ b/apps/user-service/build.gradle @@ -2,6 +2,7 @@ plugins { id 'java' id 'org.springframework.boot' version '3.5.4' id 'io.spring.dependency-management' version '1.1.7' + id 'com.diffplug.spotless' version '7.2.1' } group = 'com.gltkorea' @@ -43,3 +44,21 @@ dependencies { tasks.named('test') { useJUnitPlatform() } + +spotless { + java { + googleJavaFormat('1.17.0') + importOrder('java', 'javax', 'org', 'com', '', 'com.movement') + endWithNewline() + removeUnusedImports() + encoding('UTF-8') + + targetExclude("**/generated/**", "**/Q*.java") + } + format 'misc', { + target '**/*.gradle', '**/*.md', '**/.gitignore' + trimTrailingWhitespace() + indentWithTabs() + endWithNewline() + } +} diff --git a/apps/user-service/src/main/java/com/gltkorea/icebang/UserServiceApplication.java b/apps/user-service/src/main/java/com/gltkorea/icebang/UserServiceApplication.java index 110b7d92..b5fcbef4 100644 --- a/apps/user-service/src/main/java/com/gltkorea/icebang/UserServiceApplication.java +++ b/apps/user-service/src/main/java/com/gltkorea/icebang/UserServiceApplication.java @@ -6,8 +6,7 @@ @SpringBootApplication public class UserServiceApplication { - public static void main(String[] args) { - SpringApplication.run(UserServiceApplication.class, args); - } - + public static void main(String[] args) { + SpringApplication.run(UserServiceApplication.class, args); + } } diff --git a/apps/user-service/src/main/java/com/gltkorea/icebang/config/SecurityConfig.java b/apps/user-service/src/main/java/com/gltkorea/icebang/config/SecurityConfig.java index b0c092c0..4d7ac371 100644 --- a/apps/user-service/src/main/java/com/gltkorea/icebang/config/SecurityConfig.java +++ b/apps/user-service/src/main/java/com/gltkorea/icebang/config/SecurityConfig.java @@ -3,5 +3,4 @@ import org.springframework.context.annotation.Configuration; @Configuration -public class SecurityConfig { -} +public class SecurityConfig {} diff --git a/apps/user-service/src/main/java/com/gltkorea/icebang/domain/user/model/UserAccountPrincipal.java b/apps/user-service/src/main/java/com/gltkorea/icebang/domain/user/model/UserAccountPrincipal.java index e394eca7..abca6682 100644 --- a/apps/user-service/src/main/java/com/gltkorea/icebang/domain/user/model/UserAccountPrincipal.java +++ b/apps/user-service/src/main/java/com/gltkorea/icebang/domain/user/model/UserAccountPrincipal.java @@ -1,26 +1,27 @@ package com.gltkorea.icebang.domain.user.model; -import lombok.Builder; +import java.util.Collection; +import java.util.List; + import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; -import java.util.Collection; -import java.util.List; +import lombok.Builder; @Builder public class UserAccountPrincipal implements UserDetails { - @Override - public Collection getAuthorities() { - return List.of(); - } + @Override + public Collection getAuthorities() { + return List.of(); + } - @Override - public String getPassword() { - return ""; - } + @Override + public String getPassword() { + return ""; + } - @Override - public String getUsername() { - return ""; - } + @Override + public String getUsername() { + return ""; + } } diff --git a/apps/user-service/src/main/java/com/gltkorea/icebang/domain/user/service/UserAuthService.java b/apps/user-service/src/main/java/com/gltkorea/icebang/domain/user/service/UserAuthService.java index f8c22c3d..dc8396ee 100644 --- a/apps/user-service/src/main/java/com/gltkorea/icebang/domain/user/service/UserAuthService.java +++ b/apps/user-service/src/main/java/com/gltkorea/icebang/domain/user/service/UserAuthService.java @@ -2,5 +2,4 @@ import org.springframework.security.core.userdetails.UserDetailsService; -public interface UserAuthService extends UserDetailsService { -} +public interface UserAuthService extends UserDetailsService {} diff --git a/apps/user-service/src/main/java/com/gltkorea/icebang/domain/user/service/UserAuthServiceImpl.java b/apps/user-service/src/main/java/com/gltkorea/icebang/domain/user/service/UserAuthServiceImpl.java index cf7cb819..272e289e 100644 --- a/apps/user-service/src/main/java/com/gltkorea/icebang/domain/user/service/UserAuthServiceImpl.java +++ b/apps/user-service/src/main/java/com/gltkorea/icebang/domain/user/service/UserAuthServiceImpl.java @@ -1,12 +1,13 @@ package com.gltkorea.icebang.domain.user.service; -import com.gltkorea.icebang.domain.user.model.UserAccountPrincipal; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UsernameNotFoundException; +import com.gltkorea.icebang.domain.user.model.UserAccountPrincipal; + public class UserAuthServiceImpl implements UserAuthService { - @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - return UserAccountPrincipal.builder().build(); - } + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + return UserAccountPrincipal.builder().build(); + } } diff --git a/apps/user-service/src/test/java/com/gltkorea/icebang/TestUserServiceApplication.java b/apps/user-service/src/test/java/com/gltkorea/icebang/TestUserServiceApplication.java index 624e8df7..f53fa0a9 100644 --- a/apps/user-service/src/test/java/com/gltkorea/icebang/TestUserServiceApplication.java +++ b/apps/user-service/src/test/java/com/gltkorea/icebang/TestUserServiceApplication.java @@ -4,8 +4,9 @@ public class TestUserServiceApplication { - public static void main(String[] args) { - SpringApplication.from(UserServiceApplication::main).with(TestcontainersConfiguration.class).run(args); - } - + public static void main(String[] args) { + SpringApplication.from(UserServiceApplication::main) + .with(TestcontainersConfiguration.class) + .run(args); + } } diff --git a/apps/user-service/src/test/java/com/gltkorea/icebang/TestcontainersConfiguration.java b/apps/user-service/src/test/java/com/gltkorea/icebang/TestcontainersConfiguration.java index a302d914..bbe8ed02 100644 --- a/apps/user-service/src/test/java/com/gltkorea/icebang/TestcontainersConfiguration.java +++ b/apps/user-service/src/test/java/com/gltkorea/icebang/TestcontainersConfiguration.java @@ -3,6 +3,4 @@ import org.springframework.boot.test.context.TestConfiguration; @TestConfiguration(proxyBeanMethods = false) -class TestcontainersConfiguration { - -} +class TestcontainersConfiguration {} diff --git a/apps/user-service/src/test/java/com/gltkorea/icebang/UserServiceApplicationTests.java b/apps/user-service/src/test/java/com/gltkorea/icebang/UserServiceApplicationTests.java index c83e584d..26cfc86b 100644 --- a/apps/user-service/src/test/java/com/gltkorea/icebang/UserServiceApplicationTests.java +++ b/apps/user-service/src/test/java/com/gltkorea/icebang/UserServiceApplicationTests.java @@ -8,8 +8,6 @@ @SpringBootTest class UserServiceApplicationTests { - @Test - void contextLoads() { - } - + @Test + void contextLoads() {} }