From 64a738754d21cb26de657b56ebcc344f415d68d3 Mon Sep 17 00:00:00 2001 From: Dale Seo <5466341+DaleSeo@users.noreply.github.com> Date: Sun, 1 Nov 2026 09:42:33 -0500 Subject: [PATCH 1/2] ci: show preview url as a github deployment --- .github/workflows/preview.yml | 13 ++++--------- AGENTS.md | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 9235b79..3fa695c 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -18,7 +18,10 @@ jobs: runs-on: ubuntu-latest permissions: contents: read - pull-requests: write + # 미리보기 주소는 GitHub 배포(previews 환경)로 PR에 표시된다 + environment: + name: previews + url: ${{ steps.preview.outputs.preview-url }} steps: - uses: actions/checkout@v7 @@ -47,14 +50,6 @@ jobs: packageManager: bun command: preview --name pr-${{ github.event.pull_request.number }} --secrets-file ${{ runner.temp }}/secrets.env - - name: Comment - if: always() - uses: marocchino/sticky-pull-request-comment@v3 - with: - header: cloudflare-workers - message: | - ${{ steps.preview.outcome == 'success' && '✅' || '❌' }} 미리보기: https://pr-${{ github.event.pull_request.number }}.feedback-preview.dalestudy.com · [실행 로그](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - cleanup: if: > github.event.action == 'closed' && diff --git a/AGENTS.md b/AGENTS.md index 0624b10..b71070d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -33,7 +33,7 @@ bun run deploy:preview # 지금 브랜치의 미리보기 수동 배포 ( - 변경은 브랜치 → PR → 미리보기에서 확인 → squash merge. `main` 에 직접 push·force push 하지 않는다 — 다른 사람과 함께 쓰는 저장소가 됐고, 머지 기록이 곧 배포 기록이다. - `main` 에 머지되면 GitHub Actions(`.github/workflows/deploy.yml`)가 `bun run build` → `wrangler deploy --secrets-file` 로 배포한다. `GITHUB_CLIENT_SECRET` 은 org secret `APP_CLIENT_SECRET` 에서 배포와 함께 넣는다(따로 `wrangler secret put` 하지 않는다 — 다음 배포 때 GitHub 값으로 덮인다). `bun run deploy` 는 수동 fallback. -- **미리보기**: 같은 저장소의 PR 을 열거나 push 하면 GitHub Actions(`.github/workflows/preview.yml`)가 `bun run db:migrate:preview` → `wrangler preview --name pr-<번호> --secrets-file` 로 `https://pr-<번호>.feedback-preview.dalestudy.com` 을 만들고 PR 댓글로 알린다. PR 이 닫히면 미리보기를 지운다. 모든 미리보기는 D1 `feedback-preview` 를 함께 쓴다 — 프로덕션 응답을 건드리지 않는 게 목적이다. +- **미리보기**: 같은 저장소의 PR 을 열거나 push 하면 GitHub Actions(`.github/workflows/preview.yml`)가 `bun run db:migrate:preview` → `wrangler preview --name pr-<번호> --secrets-file` 로 `https://pr-<번호>.feedback-preview.dalestudy.com` 을 만들고 PR 에 `previews` 환경 배포로 알린다(다른 저장소와 같은 방식). PR 이 닫히면 미리보기를 지운다. 모든 미리보기는 D1 `feedback-preview` 를 함께 쓴다 — 프로덕션 응답을 건드리지 않는 게 목적이다. - `wrangler.jsonc` 의 `previews` 블록에 D1 을 다시 선언한다(상속되지 않는다). 마이그레이션은 마이그레이션 전용 환경 `env.migrate-preview` 로 한다 — `previews` 블록의 D1 은 `d1 migrations apply` 가 찾지 못하고, `preview_database_id` 를 쓰면 로컬 개발까지 그 id 의 빈 DB 를 쓰게 된다. - `versions upload` 의 버전 URL 은 프로덕션 D1 을 써서 쓰지 않는다(`preview_urls` 도 끔). - 미리보기 시크릿도 배포할 때마다 `--secrets-file` 로 넣으므로 Previews base config 에는 시크릿을 두지 않는다. From b1eaacd7975d1055ebe889952294fdf7d74f83cb Mon Sep 17 00:00:00 2001 From: Dale Seo <5466341+DaleSeo@users.noreply.github.com> Date: Sun, 1 Nov 2026 09:45:15 -0500 Subject: [PATCH 2/2] docs: drop redundant note on preview environment --- AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index b71070d..19d6757 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -33,7 +33,7 @@ bun run deploy:preview # 지금 브랜치의 미리보기 수동 배포 ( - 변경은 브랜치 → PR → 미리보기에서 확인 → squash merge. `main` 에 직접 push·force push 하지 않는다 — 다른 사람과 함께 쓰는 저장소가 됐고, 머지 기록이 곧 배포 기록이다. - `main` 에 머지되면 GitHub Actions(`.github/workflows/deploy.yml`)가 `bun run build` → `wrangler deploy --secrets-file` 로 배포한다. `GITHUB_CLIENT_SECRET` 은 org secret `APP_CLIENT_SECRET` 에서 배포와 함께 넣는다(따로 `wrangler secret put` 하지 않는다 — 다음 배포 때 GitHub 값으로 덮인다). `bun run deploy` 는 수동 fallback. -- **미리보기**: 같은 저장소의 PR 을 열거나 push 하면 GitHub Actions(`.github/workflows/preview.yml`)가 `bun run db:migrate:preview` → `wrangler preview --name pr-<번호> --secrets-file` 로 `https://pr-<번호>.feedback-preview.dalestudy.com` 을 만들고 PR 에 `previews` 환경 배포로 알린다(다른 저장소와 같은 방식). PR 이 닫히면 미리보기를 지운다. 모든 미리보기는 D1 `feedback-preview` 를 함께 쓴다 — 프로덕션 응답을 건드리지 않는 게 목적이다. +- **미리보기**: 같은 저장소의 PR 을 열거나 push 하면 GitHub Actions(`.github/workflows/preview.yml`)가 `bun run db:migrate:preview` → `wrangler preview --name pr-<번호> --secrets-file` 로 `https://pr-<번호>.feedback-preview.dalestudy.com` 을 만들고 PR 에 `previews` 환경 배포로 알린다. PR 이 닫히면 미리보기를 지운다. 모든 미리보기는 D1 `feedback-preview` 를 함께 쓴다 — 프로덕션 응답을 건드리지 않는 게 목적이다. - `wrangler.jsonc` 의 `previews` 블록에 D1 을 다시 선언한다(상속되지 않는다). 마이그레이션은 마이그레이션 전용 환경 `env.migrate-preview` 로 한다 — `previews` 블록의 D1 은 `d1 migrations apply` 가 찾지 못하고, `preview_database_id` 를 쓰면 로컬 개발까지 그 id 의 빈 DB 를 쓰게 된다. - `versions upload` 의 버전 URL 은 프로덕션 D1 을 써서 쓰지 않는다(`preview_urls` 도 끔). - 미리보기 시크릿도 배포할 때마다 `--secrets-file` 로 넣으므로 Previews base config 에는 시크릿을 두지 않는다.