Skip to content

[Task] 베타 채널 Chrome Web Store 자동배포 활성화 (별도 항목) #112

Description

@6-keem

확인 사항

  • 동일하거나 유사한 작업이 없는지 검색했습니다.

배경 / 목적

오픈소스화 마무리 단계로, 릴리즈 → Chrome Web Store 자동 게시 파이프라인을 실제로 동작시키려 한다.

현재 상태:

  • release-please.yml(stable) / release-beta.yml(beta) 두 워크플로 모두 mnao305/chrome-extension-upload 스텝이 vars.ENABLE_STORE_PUBLISH == 'true' 게이트 뒤에 스텁으로 들어가 있다.
  • manifest.config.tsRELEASE_CHANNEL=beta일 때 확장 이름에 (Beta) 접미사만 붙인다 (아이콘 분기 없음).
  • 베타 빌드의 manifest versionpackage.json 버전(스테이블 base)과 동일하게 나간다.

게이트를 그냥 켜면 베타 스토어 발행이 깨진다. 두 가지 코드 결함 때문:

  1. Chrome manifest version은 숫자 점 표기만 허용 → 태그의 -beta.N이 들어갈 수 없고, 현재는 manifest 버전이 스테이블과 동일해 스토어가 업로드를 거부한다.
  2. 베타는 별도 스토어 항목 = 별도 확장 ID로 운영하므로, 기존 PROD_CLIENT_ID(스테이블 확장 ID에 묶임)로는 베타에서 Calendar OAuth 토큰 검증이 실패한다. 베타용 client_id가 별도로 필요하다.

설계 결정: 베타-스테이블 병존이 목표이므로 단일 항목 + Trusted Testers(순차 출시만 가능)가 아닌 별도 스토어 항목 방식으로 간다.

OAuth 구분 정리:

  • 확장 Calendar OAuth(manifest.oauth2.client_id): 베타 확장 ID가 다르므로 베타용 별도 client_id 필요.
  • 스토어 게시 OAuth(CHROME_CLIENT_ID/SECRET/REFRESH_TOKEN): 개발자 계정 단위 → 스테이블·베타 공용 1개로 충분.

할 일

코드:

  • manifest.config.ts: BETA_CLIENT_ID 상수 추가, isBeta일 때 선택
  • manifest.config.ts: isBeta일 때 베타 아이콘 경로로 분기
  • 베타 아이콘 자산 추가 (icon-*-beta.png) — 자산은 메인테이너가 제공
  • release-beta.yml: RELEASE_CHANNEL=beta 빌드 시 manifest version을 4-파트 숫자 스킴(X.Y.Z.<RUN_NUMBER>)으로 주입 (GitHub 태그는 vX.Y.Z-beta.N 유지)

수동 운영(코드 외, 메인테이너):

  • 베타용 별도 스토어 항목 생성 → BETA_EXTENSION_ID 확보
  • 베타 확장 ID로 Calendar OAuth client_id 발급 → manifest BETA_CLIENT_ID에 반영
  • Web Store API 게시 자격증명 발급: CHROME_CLIENT_ID / CHROME_CLIENT_SECRET / CHROME_REFRESH_TOKEN (공용)
  • GitHub Secrets 등록(STABLE_EXTENSION_ID, BETA_EXTENSION_ID, 위 3종) + vars.ENABLE_STORE_PUBLISH=true 설정

완료 기준

  • ENABLE_STORE_PUBLISH=true 상태에서 Release PR 머지 시 스테이블 항목이 자동 게시된다.
  • Release Beta 워크플로 수동 실행 시 베타 별도 항목에 4-파트 숫자 버전으로 자동 게시되고, 스토어가 버전 충돌로 거부하지 않는다.
  • 베타 빌드는 이름 (Beta) + 베타 아이콘으로 스테이블과 시각적으로 구분된다.
  • 베타에서 Google Calendar 연동(OAuth)이 정상 동작한다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    chore빌드/도구/설정 등 잡일

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions