CircleCIでFirebaseHostingに自動デプロイする
Vue.jsやNuxt.js(spaモード)で作ったアプリをCircleCI経由でFirebaseHostingにデプロイしたい時に使う[[.circleci/config.yml]]。
workflowsのfiltersを使ってproductionブランチの場合のみbuildとdeployを行うように設定している。
version: 2
jobs:
build:
docker:
- image: circleci/node:12.13
working_directory: ~/app
steps:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "yarn.lock" }}
- run: yarn
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "yarn.lock" }}
- run: yarn build
- persist_to_workspace:
root: .
paths:
- .
deploy:
docker:
- image: circleci/node:12.13
working_directory: ~/app
steps:
- attach_workspace:
at: .
- run: yarn deploy --token=$FIREBASE_TOKEN
workflows:
version: 2
build-deploy:
jobs:
- build:
filters:
branches:
only: production
- deploy:
requires:
- build
filters:
branches:
only: production