Skip to content

Comments

chore: develop pull request, develop build deploy 워크플로 환경 변수 설정 스텝 수정#12

Merged
hisonghy merged 5 commits intodevelopfrom
chore/workflow-env-11
Mar 9, 2025
Merged

chore: develop pull request, develop build deploy 워크플로 환경 변수 설정 스텝 수정#12
hisonghy merged 5 commits intodevelopfrom
chore/workflow-env-11

Conversation

@hisonghy
Copy link
Member

@hisonghy hisonghy commented Mar 8, 2025

🌱 관련 이슈

📌 작업 내용 및 특이사항

  • secrets 에 설정해둔 정보를 $GITHUB_ENV 로 등록하는 스텝에서는 마스킹 처리가 되지만 그 이후 스텝들에서 github actions env 를 보면 마스킹 처리가 되어있지 않아 그대로 노출되고 있었습니다
  • develop pull request, develop build deploy 워크플로 실행 시 깃허브 액션 환경의 환경변수가 로그로 출력되는 이슈가 발생해 환경변수 설정 스텝을 수정했습니다
  • $GITHUB_ENV로 환경변수를 등록하지 않고 .env 파일을 생성해 스프링부트 테스트 시 .env 파일을 읽을 수 있도록 수정했습니다

🔍 참고사항

[ 트러블 슈팅 ]

  1. $GITHUB_ENV 를 마스킹 처리한 방법 (1ea3cc2, d6441fb) ❌
- name: Mask ENV
  run: |
    while IFS= read -r line; do
      echo "::add-mask::$line"
    done <<< "${{ secrets.ENV }}"
- name: Mask ENV
  run: |
    if [ -f "$GITHUB_ENV" ]; then
      while IFS= read -r line; do
        echo "::add-mask::$line"
      done < "$GITHUB_ENV"
    fi
  • 환경변수가 마스킹 처리되지 않음
- name: Mask ENV
  run: |
    while IFS= read -r line; do
      echo "::add-mask::$line"
    done <<< "$(env | grep -v '^#' | awk -F= '{print $2}')"
  • 이후 스텝에서는 마스킹 처리되지만 해당 스텝에서는 그대로 환경변수가 로그로 노출됨

  1. .env 파일로 관리하고 해당 파일을 워크플로 환경변수로 사용하는 방법 (29616b3) ❌
- name: Create .env file
  run: |
    echo "${{ secrets.ENV }}" >> .env

- name: Load .env file And export Environments
  run: |
    set -o allexport
    source .env
    set +o allexport
  • 이후 스텝인 gradlew check 및 build 스텝에서는 적용되지 않음. Github Actions 의 각 스텝은 독립적인 프로세스로 실행되기 때문에 $GITHUB_ENV 로 등록하지 않거나 각 스텝마다 환경변수를 export 해주지 않으면 환경변수를 전역적으로 사용할 수 없음

  1. .env 파일로 관리하고 스프링부트 테스트 시 .env 파일을 로드해 환경변수로 적용하는 방법 (9b59859) 🟢
- name: Create .env file
  run: |
    echo "${{ secrets.ENV }}" >> .env
@SpringBootTest
@TestPropertySource(locations = "file:.env")
class ServerApplicationTests {

    @Test
    void contextLoads() {}
}
  • secrets.ENV 값을 기반으로 .env 파일을 생성해 스프링부트 테스트 실행 시 해당 파일을 로드해 환경변수로 적용하도록 설정

📚 기타

@hisonghy hisonghy added the ⚙️ chore 빌드 및 CI/CD, 그외 설정작업 label Mar 8, 2025
@hisonghy hisonghy requested a review from myqewr March 8, 2025 05:06
@hisonghy hisonghy self-assigned this Mar 8, 2025
@hisonghy hisonghy force-pushed the chore/workflow-env-11 branch from e05e084 to 937c908 Compare March 8, 2025 06:05
@hisonghy hisonghy force-pushed the chore/workflow-env-11 branch from 937c908 to d6441fb Compare March 8, 2025 06:13
@hisonghy hisonghy merged commit 969c12a into develop Mar 9, 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