피드로 돌아가기
GitHub Actions: Scoping environment variables across environments without wildcards
Dev.toDev.to
DevOps

GitHub Actions Wildcard 부재 해결을 통한 450개 환경 변수 관리 효율화

GitHub Actions: Scoping environment variables across environments without wildcards

Daniel Bayerlein2026년 4월 10일4intermediate

Context

Monorepo 구조에서 앱별 독립적 배포를 위해 계층별 GitHub Environment를 세분화하여 운영함. GitHub Actions의 Environment Variable Scope 내 Wildcard 미지원으로 인해 동일 Tier 내 중복 변수 정의가 반복되는 관리 병목 발생.

Technical Solution

  • Repository 수준의 단일 변수 ENVIRONMENT_CONFIG에 Tier별 설정을 JSON 형태로 중앙 집중화
  • Job 실행 시 jq를 이용해 입력된 inputs.environment에 해당하는 JSON 객체만 동적으로 추출
  • 추출된 Key-Value 쌍을 $GITHUB_ENV에 즉시 기록하여 이후 Step에서 Environment Variable로 참조 가능하게 설계
  • env: 블록을 빈 값으로 선언하여 기대 변수를 명시하고, 런타임에 실제 값으로 덮어쓰는 전략 채택
  • 민감 정보는 GitHub Secrets로 분리하고 비민감 설정만 JSON으로 관리하여 보안성 유지

1. Monorepo 내 Tier별 공통 변수가 많은지 확인

2. 비민감 설정값을 JSON 형태로 통합하여 Repository Variable로 이전 가능 여부 검토

3. `jq`를 이용한 환경 변수 동적 로드 파이프라인 구축

4. Secret 정보는 JSON에 포함하지 않고 기존 GitHub Secrets 시스템 유지

원문 읽기