Logocob

cob secrets

키/자격증명 파일 base64 인코딩 및 GitHub Actions Secrets 업로드

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 .envrcGITHUB_SECRET_REPOS org/a,org/b (쉼표 구분)
3 .envrcGITHUB_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 사용

관련 명령#