今日のお題を使ってこれからCI環境を作りたいと思ってますので、今回は準備編ということでheroku上にhubotをデプロイしてslack連携までやってみます。
##github上にhubotリポジトリ作成
herokuで展開するのでローカルで以下のように作っていきます
$ npm install -g yo generator-hubot
$ mkdir ligzo
$ cd ligzo
$ yo hubot
#対話式の中で最後のadapterにslackと返答すると、Procfileに以下の記述が追記され、slack上で使うadapterの設定の記述もしてくれます。
web: bin/hubot -a slack -n ligzo
hubotを起動します
$ bin/hubot
#警告が出ましたが、動いています。
npm WARN package.json hubot-maps@0.0.0 No repository field.
Hubot> hubot ping
Hubot> PONG
githubに上げる前にローカルコミットしておきましょう
$ git init
$ git add .
$ git commit -m "Initial commit"
github上でリポジトリ作成
web上で作成します.
今回はligcoで作成しました。
先ほどのローカルのリポジトリにremoteaddします。
$ git remote add origin https://github.com/nakamura-daiki/ligco.git
$ git push -u origin master
公開鍵を登録しないといけませんでした。
web上でdeploykeyを登録しますが、その前にローカルで鍵を作成します。
$ ssh-keygen -t rsa
#鍵の名前を何でもいいので入力して作成します。
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/{作った鍵}
$ pbcopy < ~/.ssh/{作った鍵}.pub
web上で登録します.
add Deploy keyからコピーしたキーを登録します。
再度pushします
$ git push -u origin master
とりあえず準備OKです。
##herokuにデプロイ
https://toolbelt.heroku.com/ここからHeroku Toolbeltをダウンロードしてインストールします。
ローカルのターミナルで操作します。
$heroku login
#登録したメールアドレスとパスワードを入力します。
$heroku create ligzo-bot
# heroku上に鍵を登録します
$ heroku keys:add
#これでherokuにpushできます。
$ git push heroku master
環境変数を登録します
herokuのwebコンソールからも編集できます。
環境変数の一覧はこちらhttps://github.com/tinyspeck/hubot-slack必要なのはこんなところでしょうか。
$ heroku config:add HUBOT_SLACK_TOKEN={}
$ heroku config:add HUBOT_SLACK_TEAM={}
$ heroku config:add HUBOT_SLACK_BOTNAME={}
$ heroku config:add HUBOT_SLACK_CHANNELS={}
$ heroku config:add HEROKU_URL={}
LIGのメンバーをherokuのリポジトリにcollaborator登録しておきます。
##slack連携
Configure Integrationsからhubotを選択して登録します。
ここで表示されるトークン等を上記のheroku configureで登録していきます。
herokuのwebコンソールで表示されているドメインをHubot URLに登録してSave Integrationします。