피드로 돌아가기
Dev.toDevOps
원문 읽기
GitHub Actions Wildcard 부재 해결을 통한 450개 환경 변수 관리 효율화
GitHub Actions: Scoping environment variables across environments without wildcards
AI 요약
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 시스템 유지