본문 바로가기
🪲 bugs

Github action 에서 예외 발생시 디버깅을 해보자 (feat. gradle)

by iirin 2024. 1. 30.

발생 상황

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