확인 사항
배경 / 목적
오픈소스화 마무리 단계로, 릴리즈 → Chrome Web Store 자동 게시 파이프라인을 실제로 동작시키려 한다.
현재 상태:
release-please.yml(stable) / release-beta.yml(beta) 두 워크플로 모두 mnao305/chrome-extension-upload 스텝이 vars.ENABLE_STORE_PUBLISH == 'true' 게이트 뒤에 스텁으로 들어가 있다.
manifest.config.ts는 RELEASE_CHANNEL=beta일 때 확장 이름에 (Beta) 접미사만 붙인다 (아이콘 분기 없음).
- 베타 빌드의 manifest
version이 package.json 버전(스테이블 base)과 동일하게 나간다.
게이트를 그냥 켜면 베타 스토어 발행이 깨진다. 두 가지 코드 결함 때문:
- Chrome manifest
version은 숫자 점 표기만 허용 → 태그의 -beta.N이 들어갈 수 없고, 현재는 manifest 버전이 스테이블과 동일해 스토어가 업로드를 거부한다.
- 베타는 별도 스토어 항목 = 별도 확장 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개로 충분.
할 일
코드:
수동 운영(코드 외, 메인테이너):
완료 기준
ENABLE_STORE_PUBLISH=true 상태에서 Release PR 머지 시 스테이블 항목이 자동 게시된다.
Release Beta 워크플로 수동 실행 시 베타 별도 항목에 4-파트 숫자 버전으로 자동 게시되고, 스토어가 버전 충돌로 거부하지 않는다.
- 베타 빌드는 이름
(Beta) + 베타 아이콘으로 스테이블과 시각적으로 구분된다.
- 베타에서 Google Calendar 연동(OAuth)이 정상 동작한다.
확인 사항
배경 / 목적
오픈소스화 마무리 단계로, 릴리즈 → Chrome Web Store 자동 게시 파이프라인을 실제로 동작시키려 한다.
현재 상태:
release-please.yml(stable) /release-beta.yml(beta) 두 워크플로 모두mnao305/chrome-extension-upload스텝이vars.ENABLE_STORE_PUBLISH == 'true'게이트 뒤에 스텁으로 들어가 있다.manifest.config.ts는RELEASE_CHANNEL=beta일 때 확장 이름에(Beta)접미사만 붙인다 (아이콘 분기 없음).version이package.json버전(스테이블 base)과 동일하게 나간다.게이트를 그냥 켜면 베타 스토어 발행이 깨진다. 두 가지 코드 결함 때문:
version은 숫자 점 표기만 허용 → 태그의-beta.N이 들어갈 수 없고, 현재는 manifest 버전이 스테이블과 동일해 스토어가 업로드를 거부한다.PROD_CLIENT_ID(스테이블 확장 ID에 묶임)로는 베타에서 Calendar OAuth 토큰 검증이 실패한다. 베타용client_id가 별도로 필요하다.OAuth 구분 정리:
manifest.oauth2.client_id): 베타 확장 ID가 다르므로 베타용 별도 client_id 필요.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빌드 시 manifestversion을 4-파트 숫자 스킴(X.Y.Z.<RUN_NUMBER>)으로 주입 (GitHub 태그는vX.Y.Z-beta.N유지)수동 운영(코드 외, 메인테이너):
BETA_EXTENSION_ID확보BETA_CLIENT_ID에 반영CHROME_CLIENT_ID/CHROME_CLIENT_SECRET/CHROME_REFRESH_TOKEN(공용)STABLE_EXTENSION_ID,BETA_EXTENSION_ID, 위 3종) +vars.ENABLE_STORE_PUBLISH=true설정완료 기준
ENABLE_STORE_PUBLISH=true상태에서 Release PR 머지 시 스테이블 항목이 자동 게시된다.Release Beta워크플로 수동 실행 시 베타 별도 항목에 4-파트 숫자 버전으로 자동 게시되고, 스토어가 버전 충돌로 거부하지 않는다.(Beta)+ 베타 아이콘으로 스테이블과 시각적으로 구분된다.