dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[Heroku]GitHubと連携するgithub-syncを使ってみた

Twitter のタイムラインで Heroku のこんな機能を知り、どんなもんか触ってみました。

はじめに

本機能は 2014/11/27 現在 WIP (work in progress) だそうです。
上のリンクも Last Updated が 2014/11/25 なのでかなり最近公開された機能なのかな...

※※2014/11/28 追記※※
最後の方にも書きましたが、まだ全てのユーザーに対して有効になってはいないようです。
聞くところによると、まだベータなんで招待されないと使えないようですね。

機能を有効にしてみる

それでは、上記のリンクを参考にまずは機能を有効にします。 ローカルで以下のコマンドを実行

$ heroku labs:enable github-sync

すると、以下のようなメッセージが表示され、機能が有効化されます。

Enabling github-sync for ********@gmail.com... done
WARNING: This feature is experimental and may change or be removed without notice.
For more information see: https://devcenter.heroku.com/articles/github-sync

ここでも「この機能はまだ experimental だよ」という警告が出ます。
ちなみに、

$ heroku labs

というコマンドを実行すると

=== User Features (********@gmail.com)
[+] github-sync  Allow users to set up automatic GitHub deployments from Dashboard
[ ] pipelines    Pipelines adds experimental support for deploying changes between applications with a shared code base.

=== App Features (lit-peak-8002)
[+] http-dyno-logs       Enable HTTP dyno logs using log-shuttle [alpha]
[ ] log-runtime-metrics  Emit dyno resource usage information into app logs

というように、現在の設定が確認できます。

機能を使ってみる

早速、github-sync を使ってみます。
GitHub と連携するということで、適当な GitHub リポジトリを用意します。

https://github.com/zaki-yama/heroku_github-sync

Heroku のダッシュボード にアクセスし、どれでもいいのでアプリケーションを選択します。

「Code」を選択すると、真ん中に GitHub の項目があります。

f:id:dackdive:20141128004303p:plain

リポジトリを入力して、「Connect」をクリックすると...

f:id:dackdive:20141128004739p:plain

GitHubリポジトリと連携できました!

で、どうやら機能としては3つあるようです。
上から順にどんなことができるかさらっと見ていきます。

機能①: Deploy a GitHub branch

そのまんまの意味で、「Deploy Branch」ボタンを押すと選択したブランチが Heroku にデプロイされるっぽいです。
単に master ブランチでなく、プルダウンで対象を選択できるのがいいですね。

機能②: Enable automatic deploys from GitHub

ブランチを選択してこの機能を有効にしておくと、push されるたびにその内容が自動的に Heroku にもデプロイされるようです。

機能③: Enable automatic deploys of GitHub Pull Requests

GitHub 上で Pull Request を作成するたびに、Heroku 上で自動的に新たにアプリケーションを作成し、以後は Pull Request に push した内容がそっちのアプリケーションに自動で反映されるようです。

すげえ!!

機能③はまだ使えない...?

で、一通り試してみたんですが、私のアカウントではどういうわけか機能③だけうまくいきませんでした。

f:id:dackdive:20141128013713p:plain

こちらのように、PR 作成時にメッセージが表示されるようになったんですが、「deploy」のリンクをクリックすると...

f:id:dackdive:20141128013809p:plain

というように、アプリ自体は作成されていないようでした。

で、記事の一番最初の注意書きをもう一度読み返すと...

This article is a work in progress, or documents a feature that is not yet released to all users. This article is unlisted. Only those with the link can access it.

not yet released to all users なので、まだなのかな...

とはいえ、プルリク作成時に検証環境が自動的に用意されるようになったら
とんでもなく便利ですよね。
Google App Engine でも似たようなことができないものか。。。