PR プレビュー
作成2026年4月4日Takeshi Takatsudo
PR ごとのプレビューデプロイワークフロー
標準 PR ワークフロー
PR ワークフローでは型チェック、ビルド、プレビューデプロイを並行で実行します:
name: PR Checks
on:
pull_request:
branches:
- main
concurrency:
group: pr-checks-${{ github.event.pull_request.number }}
cancel-in-progress: true
permissions:
contents: read
pull-requests: write
💡 PR では進行中の実行をキャンセル
本番デプロイとは異なり、PR プレビューでは新しい push が来たら進行中の実行をキャンセルすべきです(cancel-in-progress: true)。連続して push する際に CI の実行時間を節約できます。
型チェックジョブ
型チェックをビルドと並行して実行します:
typecheck:
name: Type Check
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v5
with:
node-version: 22
- run: pnpm install --frozen-lockfile
- run: pnpm check
プレビューデプロイジョブ
PR 番号をベースにしたブランチ名でデプロイします:
preview:
name: Preview Deploy
needs: [build-site]
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Download site artifact
uses: actions/download-artifact@v7
with:
name: dist-out
path: dist-out/
- name: Prepare and deploy
id: cf-deploy
run: |
mkdir -p deploy/pj/my-site
cp -r dist-out/. deploy/pj/my-site/
echo '/ /pj/my-site/ 302' > deploy/_redirects
PR_NUMBER="${{ github.event.pull_request.number }}"
npx wrangler@4 pages deploy deploy \
--project-name=my-site \
--branch="pr-${PR_NUMBER}" \
--commit-hash="${GITHUB_SHA}" \
--commit-message="Preview: PR #${PR_NUMBER}"
echo "deploy_url=https://pr-${PR_NUMBER}.takazudo-my-site.pages.dev" >> "$GITHUB_OUTPUT"
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
PR コメントスクリプトの全体は プレビューデプロイ を参照してください。