발생 상황
local에서는 build가 되는 상황.
갑자기 github action에서 이런 에러가 났습니다...
java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800
Caused by: org.springframework.beans.factory.BeanCreationException at BeanDefinitionValueResolver.java:342
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800
Caused by: org.springframework.beans.factory.BeanCreationException at ConstructorResolver.java:658
Caused by: org.springframework.beans.BeanInstantiationException at SimpleInstantiationStrategy.java:185
Caused by: java.lang.IllegalArgumentException at ConnectionUrlParser.java:67
대충 db connection을 위한 url을 못찾고 있는 것 같고, 의존성을 만들지 못하는 것 같고....
근데 로컬에서는 별 문제 없이 모든 테스트와 빌드가 통과하니 정말 뭘해야할 지 모르겠더라고요.
로컬과 달리 action flow 중에 정보를 얻기가 쉽지 않았어요.
그럴 때는 빌드 옵션에 로그가 찍힐 수 있도록 이렇게 추가해주면 github action console에서도 충분한 정보를 얻을 수 있습니다.
--stacktrace --info
# git workflow
- name: Build with Gradle
uses: gradle/gradle-build-action@v2
with:
arguments: --build-cache --parallel :application:test --stacktrace --info
cache-read-only: false
13875 line이나..! 이렇게 로그가 많이 찍히니 마음이 든든하네요 😏
발생 원인
yml 파일에서 누락된 부분이 있었습니다.
저의 경우에는 test profile로 스프링 애플리케이션을 실행할 때, `spring.cloud.vault.enabled: false` 설정을 누락해서 test 시 vault 설정을 찾다가 실패하는 에러가 나고 있었던 것이었습니다.
대처
yml 파일을 모두 정리하며 각 active profile마다 누락되는 부분이 없는지 체크해주었습니다.
spring: # test 시에는 vault를 꺼줍시다😊
cloud:
vault:
enabled: false