반응형
Github Actions를 이용해 CI를 구축하던중
로컬에서도 그렇고 Github Actions에서도 그렇고
Gradle Build 중에 자꾸 다음 사진처럼 에러가 났었다..
테스트 코드에서 DB 연결이 문제가 있는것 같다는 것은 확인했는데 삽질만 계속 했었다...
그래서 우선 로컬에서 먼저 Build를 성공 시키기 위해 열심히 서칭 했다..
우선 결과적으로 build.gradle.kts 파일에서
tasks.withType<Test> {
useJUnitPlatform()
}
이 코드에서 문제를 해결해야 했다!
그래서 여기에 yml 변수 값들을 다 세팅 해줬다!
tasks.withType<Test> {
useJUnitPlatform()
systemProperty("spring.datasource.url",System.getenv("DB_URL"))
}
나는 인텔리제이 에서 Run/Debug Configurations에서 환경 변수를 설정 해줬기에 저렇게 하면될줄 알았는데!
인텔리제이 환경변수는 build.gradle.kts에서 인식할 수 없다고 한다!
그래서 더 찾아보니까
.properties를 만들어서 값들을 넣어서 이용하면 된다고 해서 완성된 코드는 바로!
val props = Properties()
FileInputStream("src/main/resources/gradle.properties").use { props.load(it) }
tasks.withType<Test> {
useJUnitPlatform()
systemProperty("spring.datasource.url", props.getProperty("DB_URL") as String)
systemProperty("spring.datasource.username",props.getProperty("DB_USER_NAME") as String)
systemProperty("spring.datasource.password", props.getProperty("DB_PASSWORD") as String)
systemProperty("spring.mail.port", props.getProperty("MAIL_PORT") as String)
systemProperty("spring.mail.username", props.getProperty("MAIL_USER_NAME") as String)
systemProperty("spring.mail.password", props.getProperty("MAIL_PASSWORD") as String)
systemProperty("secret-key", props.getProperty("JWT_KEY") as String)
systemProperty("spring.data.redis.host", props.getProperty("REDIS_HOST") as String)
systemProperty("spring.data.redis.port", props.getProperty("REDIS_PORT") as String)
}
이것이다!
이렇게 하니까 로컬에서 빌드시 Test코드 실행 시에 DB연결도 잘 되고 빌드도 무사히 성공했다!
이제 Github Actions에서도 설정을 해줘야하는데 Github Actions에는 secrets 가 있지
보니까 Gradle Build 명령어 뒤에 환경변수를 직접 지정해주면 된다!
- name: Build with Gradle
run: ./gradlew build
env:
DB_URL: ${{ secrets.DB_URL }}
DB_USER_NAME: ${{ secrets.DB_USER_NAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
MAIL_PORT: ${{ secrets.MAIL_PORT }}
MAIL_USER_NAME: ${{ secrets.MAIL_USER_NAME }}
MAIL_PASSWORD: ${{ secrets.MAIL_PASSWORD }}
JWT_KEY: ${{ secrets.JWT_KEY }}
REDIS_HOST: ${{ secrets.REDIS_HOST }}
REDIS_PORT: ${{ secrets.REDIS_PORT }}
이렇게 ㅎ
이렇게 하니까 Test코드가 있어도 문제없이 CI구축을 완료 하였다!
이전 포스팅
반응형