Vercelのセットアップ
GitHubアクションで自動デプロイの設定を行いましょう。
まずは、構成ファイルを作成します。
vercel.json:
{
"git": {
"deploymentEnabled": false
}
}ワークフローを定義しましょう。
.github/workflows/deploy-vercel.yaml:
name: Vercel Preview Deployment
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
on:
pull_request:
types: [opened, synchronize]
branches:
- main
jobs:
deploy_preview:
runs-on: ubuntu-latest
steps:
- name: Create Deployment
id: create_deployment
uses: octokit/request-action@v2.x
with:
route: POST /repos/{owner}/{repo}/deployments
owner: ${{ github.repository_owner }}
repo: ${{ github.event.repository.name }}
ref: ${{ github.head_ref }}
environment: preview
required_contexts: '[]'
auto_merge: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout Code
uses: actions/checkout@v2
with:
ref: ${{ github.head_ref }}
- name: Install Vercel CLI
run: npm install --global vercel@latest
- name: Deploy Project to Vercel
id: deployment_to_vercel
run: |
set +e
preview_url=$(vercel deploy --token=${{ secrets.VERCEL_TOKEN }})
echo "deploy_exit_code=$?" >> $GITHUB_OUTPUT
set -e
echo "preview_url=${preview_url}" >> $GITHUB_OUTPUT
- name: Update Deployment Status
uses: octokit/request-action@v2.x
with:
route: POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses
owner: ${{ github.repository_owner }}
repo: ${{ github.event.repository.name }}
deployment_id: ${{ fromJson(steps.create_deployment.outputs.data).id }}
state: ${{ steps.deployment_to_vercel.outputs.deploy_exit_code == 0 && 'success' || 'failure' }}
environment_url: ${{ steps.deployment_to_vercel.outputs.preview_url }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Promote Error
run: exit ${{ steps.deployment_to_vercel.outputs.deploy_exit_code }}