Open SummerToday opened 5 months ago
안녕하세요 로컬에서 테스트 돌렸을 때는 잘 되는데 CI 적용 이후 발생한 문제인가요??
네 로컬에서도 잘 돌아갔었고. elastic beanstalk에 배포 후에도 정상적으로 동작하였습니다. 깃허브 액션 CI 적용 하면 저 오류들이 발생합니다..
깃허브 액션 시크릿으로 환경변수를 설정하고, application.yml 파일을 다음과 같이 수정하고,
spring:
jpa:
show-sql: true
properties:
hibernate:
format_sql: true
defer-datasource-initialization: true
h2:
console:
enabled: true
security:
oauth2:
client:
registration:
google:
client-id: ${OAUTH2_CLIENT_ID}
client-secret: ${OAUTH2_CLIENT_SECRET}
scope:
- email
- profile
jwt:
issuer: qlql7748@gmail.com
secret_key: study-springboot
ci.yml을 다음과 같이
name: CI
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '17'
- name: Set up environment variables
run: |
echo "SPRING_PROFILES_ACTIVE=test" >> $GITHUB_ENV
echo "OAUTH2_CLIENT_ID=${{ secrets.OAUTH2_CLIENT_ID }}" >> $GITHUB_ENV
echo "OAUTH2_CLIENT_SECRET=${{ secrets.OAUTH2_CLIENT_SECRET }}" >> $GITHUB_ENV
echo "OAUTH2_CLIENT_PROVIDER=google" >> $GITHUB_ENV
echo "JWT_SECRET=study-springboot" >> $GITHUB_ENV
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew clean build --warning-mode all
수정하였더니, 깃허브 액션에서 빌드가 성공적으로 되어 CI가 성공적으로 도입 되었습니다. 하지만 정확히 왜 고쳐진 것인지는 잘 모르겠습니다. 처음 제 생각으로는 깃허브 액션에서 OAuth2 변수들을 잡지 못하는 것 같아, ci.yml에 환경변수로 설정해주면 해결될 줄 알았는데, 결국은 application.yml까지 설정하고 나서야 해결이 되었습니다.. 왜 해결된 것인지 설명 좀 부탁드립니다ㅜㅜ 또한 작가님의 코드를 보면 이러한 설정 없이도 실행이 되시는 것 같았는데, 저는 왜 실행이 안되었던 것인지 궁금합니다.
안녕하세요! 제가 이 레포 알림 받는 것을 실수로 꺼두어서 이제 울렸네요 ㅠㅠ 늦게 답변드려서 죄송합니다. 자세한 로그를 봐야 알 수 있겠지만, 첨부해주신 로그를 보면
Caused by: java.lang.IllegalStateException at OAuth2ClientProperties.java:68
요 부분을 보아 OAuth2 관련 문제인 것 같은데요. https://github.com/SummerToday/Blog_SpringProject/blob/67d622ca41102cbba3bc5417f8784b340695614d/src/main/resources/application.yml 에 설정하신 것 보다 client-id, secret을 물결표시(~)로 해두셨는데 이렇게 설정하면 client-id 값을 가져올때 제대로 인식을 못하기 때문에 싱글 쿼터(')로 감싸주시거나 제가 예제에 작성한 것처럼 GOCSP..
같이 입력하셔야 CI가 정상적으로 돌아갑니다.
깃허브 액션을 이용해 CI를 도입하면 위와 같이 Build with Gradle 단계에서 오류가 발생합니다.. 왜 그러는거죠..?? elastic beanstalk에 배포까지는 문제없이 잘 됐는데 CI를 적용하니까 문제가 발생하네요ㅜㅜ 깃허브 링크 첨부합니다! https://github.com/SummerToday/Blog_SpringProject.git