Skip to content

chore: cicd 작업 구성#4

Merged
hisonghy merged 6 commits intodevelopfrom
chore/cicd-3
Feb 24, 2025
Merged

chore: cicd 작업 구성#4
hisonghy merged 6 commits intodevelopfrom
chore/cicd-3

Conversation

@hisonghy
Copy link
Member

@hisonghy hisonghy commented Feb 23, 2025

🌱 관련 이슈

📌 작업 내용 및 특이사항

  • cicd 환경을 구성했습니다
  • develop 브랜치로 pull request 이벤트 발생 시 실행되는 check 워크플로우 추가 (bded457)
  • 도커 이미지 빌드를 위한 Dockerfile 설정 (63e7c44)
  • nginx 를 리버스 프록시 서버로 사용하고 certbot Lets Encrypt SSL 인증서를 적용해 HTTPS 활성화 설정 (18f7472)
  • 배포 환경에서 여러 도커 컨테이너를 하나로 관리하기 위해 docker-compose.yml 파일 구성 (e4bb58d)
  • develop 브랜치로 push, merge 이벤트 발생 시 실행되는 빌드 및 배포 워크플로우 추가 (516e9b6)

🔍 참고사항

스크린샷 2025-02-23 오후 6 21 15
  • 배포 개발 환경에 미리 certbot 과 nginx 를 통해 초기 SSL 인증서를 발급 받았습니다

  • certbot entrypoint 에서 renew 명령어를 사용해 유효기간에 따라 자동으로 갱신되도록 구성했습니다

📚 기타

🔧 Pull Request 워크플로우에서 환경 변수를 로드하지 못하는 이슈

GitHub Actions에서 pull_request 이벤트는 보안상의 이유로 Environment(environment)에 설정된 Secrets & Variables를 로드할 수 없었고 이로 인해 테스트 실행 시 환경 변수가 누락되어 오류가 발생함


📌 문제 발생 과정
1️⃣ Redis 포트 환경 변수 누락으로 NumberFormatException 발생

  • gradle check 실행 시 Redis 포트(REDIS_PORT)가 null이 되어 NumberFormatException 발생
  • 이를 해결하기 위해 테스트 환경에서 필요한 환경 변수(REDIS_PORT 등)에 기본값(default) 설정

2️⃣ 기본값 설정 후 Spring Security에서 IllegalStateException 발생

  • 기본값을 설정하자 Redis 관련 문제는 해결이 됐는데, Spring Security OAuth2의 client_id, client_secret에 빈 문자열이 들어가면서 IllegalStateException 발생
  • OAuth2 설정 값이 빈 문자열이면 예외가 발생하는 문제였음

✅ 최종 해결 방법

  • 찾아보니 pull_request 이벤트에서 environment 설정으로 해당 환경의 Secrets 에 접근할 수 없지만 Repository Secrets 는 접근해 사용할 수 있다는 걸 알게되었습니다 (단, 같은 레포지토리의 PR 일 경우에만 가능하고 포크된 레포지토리의 PR일 경우에는 Secrets에 접근할 수 없다고 함)
  • GitHub Repository Secrets에 여러 환경 변수를 멀티라인(ENV)으로 저장하고
  • GitHub Actions 워크플로우에서 secrets.ENV 값을 로드하여 환경 변수로 등록하는 작업을 추가하면서
  • 테스트 환경에서도 필요한 환경 변수를 올바르게 불러오고 문제를 해결했습니다

🔍 참고자료

@hisonghy hisonghy merged commit bb33556 into develop Feb 24, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⚙️ chore 빌드 및 CI/CD, 그외 설정작업

Projects

None yet

Development

Successfully merging this pull request may close these issues.

⚙️️ cicd 작업

2 participants