Skip to content

기획서: prego-saas-app → prego_saas 레포·앱 이름 변경에 따른 CI/CD 연동 업데이트

목적: prego-saas-app 레포가 prego_saas로 변경된 상태에서, prego-docker의 Docker 이미지 빌드 트리거 및 관련 설정을 새 레포·앱 이름에 맞게 업데이트하기 위한 기획을 정리한다.
코드 생성 없음 — 기획·영향 범위·변경 항목·검증 절차만 명세.


1. 변경 배경

구분변경 전변경 후
레포 이름Pregoi/prego-saas-appPregoi/prego_saas
앱 폴더명prego_saas_appprego_saas
앱 표시명Prego SaaS AppPrego SaaS
  • prego-saas-app은 Frappe custom app이며, 레포·앱 이름이 prego_saas로 통일된 상태.
  • prego-docker는 기존에 prego-saas-app 레포의 push/tag 시 repository_dispatch로 이미지 빌드를 트리거하는 구조로 설정되어 있었음.
  • 레포·앱 이름 변경으로 인해 prego-docker, prego_saas, 문서·스크립트 전반에 걸쳐 참조를 업데이트해야 함.

2. 영향 범위 요약

대상영향 내용
prego-dockerapps.json, build.yml, Dockerfile, 스크립트, docs
prego_saasnotify-image-rebuild 워크플로, Secrets
Prego 문서runbook, planning 문서 내 prego-saas-app 참조
GitHub SecretsSecret 이름 변경 여부(선택), 레포별 Secret 등록 위치

3. prego-docker 변경 항목

3.1 apps.json

항목변경 전변경 후
urlhttps://github.com/Pregoi/prego-saas-apphttps://github.com/Pregoi/prego_saas
branchv1.0.0 (태그 예시)동일 정책 유지 (태그 또는 version-16 등)
  • branch 필드는 태그 기반 pinning 정책 유지. 필요 시 version-16 등 브랜치로 변경 가능.

3.2 .github/workflows/build.yml

단계/항목변경 전변경 후
주석Triggered only by repository_dispatch (prego-saas-app)Triggered only by repository_dispatch (prego_saas)
Validate 단계select(.url | test("prego-saas-app"))select(.url | test("prego_saas"))
에러 메시지apps.json has no prego-saas-app entryapps.json has no prego_saas entry
API URLPregoi/prego-saas-appPregoi/prego_saas
에러 메시지Pregoi/prego-saas-appPregoi/prego_saas
Secret 설명PREGO_SAAS_APP_CLONE_TOKEN동일 유지 또는 PREGO_SAAS_CLONE_TOKEN (선택)
Verify image appsprego_saas_appprego_saas
for app infrappe erpnext hrms crm drive prego_saas_appfrappe erpnext hrms crm drive prego_saas
  • Verify 단계: bench init 후 생성되는 앱 폴더명이 prego_saas이므로 검증 대상 앱명 수정 필요.

3.3 Dockerfile

위치변경 전변경 후
주석 (line 97)When prego-saas-app is privateWhen prego_saas is private
Python 치환 로직"prego-saas-app" in e.get("url","")"prego_saas" in e.get("url","") 또는 URL 패턴으로 prego_saas 레포 식별
clone URLPregoi/prego-saas-app.gitPregoi/prego_saas.git
디버그 출력 (line 122)prego_saas_appprego_saas
setup.py 경로prego_saas_app/setup.pyprego_saas/setup.py
  • apps.json의 url이 Pregoi/prego_saas로 변경되므로, Python 치환 로직에서 prego_saas 또는 Pregoi/prego_saas를 검사하도록 수정.

3.4 scripts/test-clone-prego-saas-app.sh

항목변경 전변경 후
파일명test-clone-prego-saas-app.shtest-clone-prego-saas.sh (선택)
REPOPregoi/prego-saas-appPregoi/prego_saas
환경변수PREGO_SAAS_APP_CLONE_TOKEN동일 유지 또는 PREGO_SAAS_CLONE_TOKEN
주석/에러 메시지prego-saas-appprego_saas

3.5 docs/prego-saas-app-notify-workflow.yml

항목변경 전변경 후
Copy 대상 주석Pregoi/prego-saas-app/.github/workflows/Pregoi/prego_saas/.github/workflows/
Secret 설명PREGODOCKER_DISPATCH_PAT동일 (prego-docker 호출용)
README 참조”Setting up prego-saas-app""Setting up prego_saas”
  • 파일 내용(API URL, event_type 등)은 prego-docker를 대상으로 하므로 변경 없음. 주석만 업데이트.

4. prego_saas 레포 변경 항목

4.1 notify-image-rebuild 워크플로

항목내용
위치Pregoi/prego_saas/.github/workflows/notify-image-rebuild.yml
소스prego-docker의 docs/prego-saas-app-notify-workflow.yml 복사 후 배치
트리거push: main, staging, develop / tags: v*..
동작repository_dispatch → Pregoi/prego-docker (event_type: custom_app_updated)
변경 필요워크플로 로직은 동일. prego_saas 레포에 해당 파일이 없으면 신규 추가 필요.
  • prego-saas-app 레포가 prego_saas로 변경/이전된 경우, prego_saas 레포에 notify 워크플로가 있어야 함.
  • 기존 prego-saas-app 레포가 아카이브·삭제되었다면, prego_saas 레포에 워크플로를 새로 설정.

4.2 GitHub Secret (prego_saas)

Secret용도
PREGODOCKER_DISPATCH_PATprego-docker 레포로 repository_dispatch 호출 시 인증. prego-docker가 private이면 repo scope 필요.
  • Secret 이름 변경 없음. prego_saas 레포 Settings → Secrets에 동일 이름으로 등록.

5. prego-docker GitHub Secrets

Secret용도변경
DOCKERHUB_USERNAMEDocker Hub 로그인없음
DOCKERHUB_TOKENDocker Hub 푸시없음
PREGO_SAAS_APP_CLONE_TOKENprego_saas(private) clone 시 인증이름 유지 권장. 기존 Secret 값은 prego_saas 레포 읽기 권한으로 갱신 필요.
  • prego_saas가 private이면, PAT에 Pregoi/prego_saas 레포 Contents 읽기 권한이 있어야 함.
  • 기존 PAT가 prego-saas-app만 대상으로 했다면, prego_saas 레포 권한으로 재발급·갱신.

6. Prego 문서 업데이트

6.1 docs/runbook/prego-saas-app-trigger-prego-docker.md

항목변경
제목prego_saas → prego-docker 이미지 재빌드 트리거 설정 (선택)
레포 참조prego-saas-app → prego_saas
Secret 설명PREGODOCKER_DISPATCH_PAT: prego_saas 레포에 등록
복사 대상prego_saas/.github/workflows/notify-image-rebuild.yml
prego-docker SecretPREGO_SAAS_APP_CLONE_TOKEN: prego_saas private 시 prego_saas 읽기 권한

6.2 docs/planning/IMPLEMENTATION_INDEX.md

항목변경
prego-saas-app 트리거prego_saas 트리거로 문구 수정
prego-saas-app 프로비저너prego_saas 프로비저너 등 관련 문서 경로·이름 일괄 검토

6.3 기타 planning 문서

  • prego-docker-implementation-plan.md, prego-saas-app-event-to-docker-image-build-plan.md 등에서 prego-saas-app → prego_saas 참조 업데이트. (선택: 문서 정합성 유지 시)

7. 구현 순서 제안

순서작업대상
1apps.json url·branch 확인 및 수정prego-docker
2build.yml Validate·Verify 단계 수정prego-docker
3Dockerfile clone URL·디버그 경로 수정prego-docker
4docs/prego-saas-app-notify-workflow.yml 주석 수정prego-docker
5scripts/test-clone-*.sh 수정 (또는 신규 스크립트)prego-docker
6notify-image-rebuild.yml을 prego_saas 레포에 배치prego_saas
7prego_saas에 PREGODOCKER_DISPATCH_PAT Secret 등록GitHub (prego_saas)
8prego-docker PREGO_SAAS_APP_CLONE_TOKEN 갱신 (prego_saas 권한)GitHub (prego-docker)
9Runbook·planning 문서 업데이트Prego
10통합 검증 (push → dispatch → build → Verify)수동

8. 검증 체크리스트

단계확인 항목
1. prego_saas pushprego_saas의 main/staging/develop 또는 v*.. tag push 시 notify-image-rebuild 워크플로 실행
2. repository_dispatchprego-docker Actions에 custom_app_updated 이벤트 수신·build-and-push 실행
3. Validate tagapps.json의 prego_saas 태그가 Pregoi/prego_saas에 존재하는지 GitHub API 검증 통과
4. Docker 빌드bench init 시 prego_saas clone·설치 성공, 이미지 빌드 완료
5. Verify image appsls apps/ 결과에 frappe, erpnext, hrms, crm, drive, prego_saas 포함
6. Docker Hubiamfork/prego-repo:latest 등 태그 푸시 확인

9. 리스크·주의사항

항목내용
레포 URL 불일치GitHub 레포가 Pregoi/prego_saas인지, Pregoi/prego-saas인지 확인 필요. 하이픈·언더스코어 구분.
앱 폴더명bench get-app 시 생성되는 폴더명이 prego_saas인지 pyproject.toml/setup.py에서 확인. Verify 단계와 일치해야 함.
기존 prego-saas-app 레포아카이브·삭제 시 기존 notify 워크플로는 더 이상 동작하지 않음. prego_saas로 완전 이전 후 새 워크플로 설정 필수.
Secret 갱신PAT 만료·권한 변경 시 빌드·dispatch 실패. 정기 점검 권장.

10. 요약

  • prego-saas-appprego_saas 변경에 따라 prego-docker의 apps.json, build.yml, Dockerfile, 스크립트, 문서를 prego_saas 기준으로 수정.
  • prego_saas 레포에 notify-image-rebuild 워크플로 배치 및 PREGODOCKER_DISPATCH_PAT Secret 등록.
  • prego-docker의 PREGO_SAAS_APP_CLONE_TOKEN은 prego_saas 레포 읽기 권한으로 갱신.
  • 문서 (runbook, planning) 내 prego-saas-app 참조를 prego_saas로 업데이트.
  • 검증: prego_saas push → prego-docker 빌드 → 이미지 푸시 → Verify image apps 통과까지 전 구간 확인.

다음 단계: 본 기획서 승인 후, §7 구현 순서에 따라 코드·설정·문서를 수정한다.

Help