TravisCIでFirebase Hostingへのデプロイを自動化


このサイトのソースはずっとGitHubのPrivateリポジトリで運用してたんだけど、 horimislime/horimisli.me としてPublicに公開した。それによりCI系サービスがタダで使える事になったので、TravisCIを利用してデプロイを自動化した。

Travisでは公式にFirebaseへのデプロイがサポートされており、詳細なドキュメントも用意されている。おかげで自動デプロイの環境がすぐに用意できた。e

Firebase Deployment - Travis CI

最終的な .travis.yml は下記のような感じ。一箇所だけハマったのは skip_cleanup: true の部分。これがないとTravisはdeploy前にworking directory内の差分を全てクリーンしてしまうため、jekyllで生成したサイトのデータが消え、Firebaseにデプロイされない。それ以外はドキュメントの内容を真似するだけで完成した。

language: node_js
node_js:
- 6.11.0
before_install:
- rvm install 2.3.1
install:
  - npm install -g gulp-cli
  - npm install
  - gem install bundler
  - bundle install --path vendor/bundle
branches:
  only:
    - master
script:
  - bundle exec gulp publish
deploy:
  provider: firebase
  skip_cleanup: true
  token:
    secure: $FIREBASE_TOKEN
  project: $FIREBASE_PROJECT

horimisli.me/.travis.yml at master · horimislime/horimisli.me

普段仕事ではCircleCIを便利に使っているんだけど、TravisはDeploy周りが抽象化されていたり Cron Jobs があったりと、自動化内容によってはCircleCIよりかなり楽ができて良いなと思った。

Related Posts

ZenHubのデスクトップアプリをElectronで実装した

Electronの各Platform向けアプリアイコンを作成する

RxSwiftにおけるメモリ管理の考え方

Swift1.2で演算子の挙動が微妙に変わった

猫の島で有名な「青島」に行ってきた

XcodeがArchive時に延々とキーチェーンへのアクセス許可を求めてくる件

Herokuでnginx+Jekyllな構成を作った

#potatotips13 でカジュアルなUIテスト自動化法について話してきた

まだObjective-Cで消耗してるの?