Vercelにはgit pushを検知してDeployする仕組みがあるが、lintやtestしてからのデプロイはgit push検知の状態ではできないのでvercelのコマンドを使用してCDツールに組み込む。
準備
vercelのgit integrationを切っておく。
Vercelの個人設定からCircleCIで使用するTokenを生成する。
Vercelで生成したTokenをCircleCIの環境変数にセットする。
実装
yarn add でvercelコマンドを準備し、Scriptを組んでおくと楽に設定できる。
yarn add -D vercel
// package.json
{
  "scripts": {
    "deploy": "vercel --token $VERCEL_TOKEN --prod --confirm"
  }
}
--confirm はデプロイするための質問をスキップさせることができる。
https://vercel.com/docs/cli#commands/overview/unique-options/confirm
.circleci/config.yml に設定を書く。
# .circleci/config.yml
version: 2.1
orbs:
  node: circleci/node@4.7
jobs:
  deploy:
    working_directory: ~/[ProjectName]
    docker:
      - image: circleci/node:latest
    steps:
      - checkout
      - run:
          name: install
          command: yarn install
      - run:
          name: deploy
          command: yarn deploy
workflows:
  version: 2
  main:
    jobs:
      - deploy:
          filters:
            branches:
              only:
                - main
vercel --token $VERCEL_TOKEN --prod --confirm を実行すると現在のディレクトリがプロジェクト名として認識されデプロイされるので、 ymlファイルの working_directory: の [ProjectName] の部分をきちんと設定すれば意図したプロジェクト名でデプロイすることができる。
CIの実行結果に本番用のURLが出力されるので、そこからアクセスすることも可能になっている。
 





 
    
Top comments (0)