cob secrets#
키스토어·Fastlane·자격증명 파일을 base64로 인코딩해 .envrc에 기록하고,
그 값들을 GitHub Actions Secrets로 업로드하는 서브커맨드 그룹입니다.
| 서브커맨드 | 설명 |
|---|---|
encode |
keystore/fastlane/credential 파일 base64 인코딩 → .envrc |
push | .envrc의 secret 값들을 gh secret set으로 업로드 |
cob secrets encode#
cob secrets encode
프로젝트 루트 기준으로 아래 파일/디렉토리를 찾아 base64 인코딩 후 .envrc에
upsert합니다. 존재하지 않는 항목은 조용히 스킵됩니다. 완료 후 direnv allow
실행을 권장합니다.
.envrc 변수 | 소스 | 방식 |
|---|---|---|
ANDROID_RELEASE_KEY_BASE64 |
android/keystore/release.keystore |
파일 |
ANDROID_KEY_PROPERTIES_BASE64 |
android/key.properties |
파일 |
APPSTORE_CONNECT_API_KEY_BASE64 |
ios/fastlane/appstore_connect_api_key.json |
파일 |
FIREBASE_{ENV}_APP_DISTRIBUTION_CREDENTIALS_BASE64 |
android/keystore/{flavor}.json |
파일 (환경별) |
FIREBASE_{ENV}_CREDENTIALS_BASE64 |
backend/{project}_server/config/firebase_admin/{flavor}.json |
파일 (환경별) |
FASTLANE_ANDROID_BASE64 |
android/fastlane/ (metadata/scripts 제외) |
tar+gzip |
FASTLANE_IOS_BASE64 |
ios/fastlane/ (metadata/screenshots/scripts 제외) |
tar+gzip |
AWS_DEPLOY_SCRIPTS_BASE64 |
backend/{project}_server/deploy/aws/scripts/ |
tar+gzip |
SERVERPOD_PASSWORDS |
backend/{project}_server/config/passwords.yaml |
파일 |
{ENV} = DEV|STG|PROD, {flavor} = development|staging|production.
cob secrets push#
cob secrets push
cob secrets push --repo coco-de/kobic,coco-de/kobic-infra
| 옵션 | 설명 |
|---|---|
--repo | 대상 GitHub 저장소 (org/repo). 여러 개는 쉼표 구분 |
대상 저장소 해결 우선순위#
| 우선순위 | 소스 | 형식 |
|---|---|---|
| 1 | --repo CLI 옵션 | org/a,org/b (쉼표 구분) |
| 2 | .envrc의 GITHUB_SECRET_REPOS |
org/a,org/b (쉼표 구분) |
| 3 | .envrc의 GITHUB_ORG + GITHUB_REPO |
단일 저장소 fallback |
셋 다 없으면 에러로 종료합니다. 다중 저장소 지정 시 동일한 secret 세트를 각 저장소에 반복 업로드합니다.
# .envrc — 다중 저장소를 고정하려면
export GITHUB_SECRET_REPOS='coco-de/kobic,coco-de/kobic-infra'
업로드되는 secret#
| 그룹 | 키 |
|---|---|
| 공통 |
MATCH_KEYCHAIN_NAME
,
MATCH_KEYCHAIN_PASSWORD
,
RELEASE_STORE_PASSWORD
,
MATCH_GIT_BASIC_AUTHORIZATION_BASE64
,
FASTLANE_ANDROID_BASE64
,
FASTLANE_IOS_BASE64
,
ANDROID_KEY_PROPERTIES_BASE64
,
ANDROID_RELEASE_KEY_BASE64
,
APPSTORE_CONNECT_API_KEY_BASE64
,
AWS_DEPLOY_SCRIPTS_BASE64
,
SERVERPOD_PASSWORDS
|
| Firebase (환경별 ×3) |
FIREBASE_{ENV}_
+
ANDROID_ID
,
ANDROID_CONSOLE_ID
,
IOS_ID
,
IOS_CONSOLE_ID
,
MACOS_ID
,
MACOS_CONSOLE_ID
,
WEB_ID
,
WINDOWS_ID
,
CONSOLE_ID
,
CONSOLE_WEB_ID
,
CONSOLE_WINDOWS_ID
,
WIDGETBOOK_ID
,
WIDGETBOOK_WEB_ID
,
APP_DISTRIBUTION_CREDENTIALS_BASE64
,
CREDENTIALS_BASE64
|
| 환경 파일 |
ENV_STAGING
(
shared/config/.env.staging
),
ENV_PRODUCTION
(
shared/config/.env.production
) — 파일이 있을 때만, 파일 내용 그대로
|
값이 비어 있는 키는 스킵 카운트로 집계되며, 저장소별 등록/스킵 개수가 출력됩니다.
전제조건#
gh auth login # push 단계에서 gh secret set 사용
관련 명령#
- 전체 오케스트레이션: cob init
- App ID를
.envrc에 기록: cob firebase init - 서비스 계정 키 발급: cob gcp service-account