diff --git a/PUSH.md b/PUSH.md new file mode 100644 index 0000000..9c01f7a --- /dev/null +++ b/PUSH.md @@ -0,0 +1,36 @@ +# Gitea Push 런북 (yakcloud-packages) + +> 이 저장소는 로컬에서 `git init` + 초기 커밋만 된 상태다. 실제 push 는 Gitea 저장소 생성 + 자격이 필요해 **수동/승인 단계**로 남긴다. + +## 1) Gitea 저장소 생성 (1회) +Gitea UI 또는 API 로 `yakcloud/yakcloud-packages` 저장소를 만든다(빈 저장소, README 없이). +```bash +# API 예시 (Gitea PAT 필요) +curl -X POST "https://gitea.yakenator.io/api/v1/orgs/yakcloud/repos" \ + -H "Authorization: token $GITEA_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"name":"yakcloud-packages","private":false,"default_branch":"main"}' +``` + +## 2) Push +```bash +cd ~/Desktop/yakcloud-packages +# remote 는 이미 origin=https://gitea.yakenator.io/yakcloud/yakcloud-packages.git 로 설정됨 +git push -u origin main # 자격증명 프롬프트: 사용자 / Gitea PAT +``` + +## 3) 패키지 발행 (npm registry = Gitea) +`.npmrc` 는 `@yakcloud:registry=https://gitea.yakenator.io/api/packages/yakcloud/npm/` 로 설정됨. +발행 인증(publish 시): +```bash +npm config set -- '//gitea.yakenator.io/api/packages/yakcloud/npm/:_authToken' "$GITEA_TOKEN" +pnpm -r publish --no-git-checks # 추출(B3+) 후 dist 빌드가 있을 때 +``` + +## 4) CI (Gitea Actions) +`.gitea/workflows/ci.yml` — Gitea Actions Runner 가 조직/저장소에 등록돼 있어야 동작. +`bind-env-drift` 잡은 private-cluster `infra/api/yakcloud_api.py` 를 sparse-checkout 하는 읽기전용 토큰(secret)이 필요(TODO). + +## 참고 +- 로고 바이너리는 저장소에 없음(상표 미번들). air-gap/배포 시 `logoBase` 로 주입 — `docs/LOGO_ATTRIBUTION.md`. +- 현재는 B1 스켈레톤. 실제 추출(B3~)·MinIO(Phase 1)·백업(M5)은 후속.