私のチームではCIで自動的にLINTをする仕組みを構築しています。
この仕組みにより、レガシーコードでテストコードがない環境でもシンタックスエラーの混入を防ぐことができます。
中身はシンプルで以下のスクリプトを作成して、CIプラットホームで実行するようにします。
php-lint.sh
1 |
|
例えば、Droneでチェックする場合は以下のように設定します。
.drone.yml
1 | script: |
私のチームではCIで自動的にLINTをする仕組みを構築しています。
この仕組みにより、レガシーコードでテストコードがない環境でもシンタックスエラーの混入を防ぐことができます。
中身はシンプルで以下のスクリプトを作成して、CIプラットホームで実行するようにします。
php-lint.sh
1 |
|
例えば、Droneでチェックする場合は以下のように設定します。
.drone.yml
1 | script: |
Docker HubとGitHubを使ってDockerイメージの自動ビルドを行う方法を紹介します。
自動ビルドのメリットは以下です。
Docker Hubを利用するには事前にアカウントの作成が必要です。
Docker Hubのアカウントの作成は以下を参考にしてください。
すでにDockerfileがGitHubで管理されていることを前提に話しを進めます。
Docker Hubにログインしたら「Profile > Settings > Linked Accounts & Services.」を選択します。
GitHubを使うのでGitHubのパネルを選択し、認証をしてください。
認証が成功すると、以下のような画面になります。
認証が済んだら、Docker Hubにリポジトリを作成します。
「 Create > Create Automated Build」を選択します。
すると以下の画面が表示されます。
GitHubを選択すると 「Users/Organizations」とリポジトリを選択できる画面になるので、自動ビルドを行うリポジトリを選択します。
Createボタンを押すと登録され、Docker Hubに表示されるようになります。
リポジトリの「Build Settings」でビルドの設定ができます。
Triggerボタンを押すとビルドが始まります。
ビルドの状態は「Build Details」で確認できます。
Queuedはビルド待ちのステータス。
Buildingはビルド中のステータスです。
GitHubにpushすればBuild Settingsで設定したブランチが自動的にビルドされます。
以上、簡単ですがDockerの自動ビルドの設定方法の紹介でした。
英語版ですが、詳しい方法が書いてあるのでこちらも参考にしてください。
前回はRubotyのインストールとプラグインチュートリアルでRubotyの導入方法を紹介しました。
今回はRubotyをSlackで動かす方法を紹介します。
RubotyにはSlackアダプターが用意してありますが、新しくユーザーの作成が必要です。
ユーザーの作成が必要のない、Botsインテグレーションとruboty-slack_rtmを使ってRubotyをSlackで動かす方法を紹介します。
Gemfileに以下を定義します。
1 | gem "ruboty-slack_rtm" |
bundle install
コマンドでインストールします。
Slackの管理画面でBotsインテグレーションを登録します。
登録するとTokenが発行されるので、そのTokenをSLACK_TOKENという名前で環境変数に設定します。
Rubotyは dotenv に対応しているので、.env
ファイルを作成し、そこにTOKENを登録しておくと便利です。
.env
1 | SLACK_TOKEN=<slack token> |
Ruboty を起動します。.env
ファイルを読み込むように —dotenv
オプションをつけて起動します。
1 | bundle exec ruby --dotenv |
起動すると SlackのRubotyがログインマークに変わります。
あとは、チャンネルにinviteすればSlackでRubotyが使えます!
ちなみにrubotyではなく、Botsインテグレーションで登録したユーザー名に反応します。
前回はRubotyのインストールとプラグインチュートリアルでRubotyの導入方法を紹介しました。
今回はRubotyをSlackで動かす方法を紹介します。
RubotyにはSlackアダプターが用意してありますが、新しくユーザーの作成が必要です。
ユーザーの作成が必要のない、Botsインテグレーションとruboty-slack_rtmを使ってRubotyをSlackで動かす方法を紹介します。
Gemfileに以下を定義します。
1 | gem "ruboty-slack_rtm" |
bundle install
コマンドでインストールします。
Slackの管理画面でBotsインテグレーションを登録します。
登録するとTokenが発行されるので、そのTokenをSLACK_TOKENという名前で環境変数に設定します。
Rubotyは dotenv に対応しているので、.env
ファイルを作成し、そこにTOKENを登録しておくと便利です。
.env
1 | SLACK_TOKEN=<slack token> |
Ruboty を起動します。.env
ファイルを読み込むように —dotenv
オプションをつけて起動します。
1 | bundle exec ruby --dotenv |
起動すると SlackのRubotyがログインマークに変わります。
あとは、チャンネルにinviteすればSlackでRubotyが使えます!
ちなみにrubotyではなく、Botsインテグレーションで登録したユーザー名に反応します。
RubotyはhubotクローンでRubyで書けるbotです。
このチュートリアルではRubotyのインストールとプラグインの作成方法を紹介します。
冗長な説明をあえて除きRubotyを動かすために重要な部分のみ解説することでスピーディにRubotyを動作できるようにしています。
以下のコマンドでinstallします。
1 | $ gem install ruboty |
以下のコマンドでひな形を作成します。ruboty/
ディレクトリとその配下にGemfileが作成されます。
1 | $ ruboty --generate |
Rubotyを起動してみます。
1 | cd ruboty |
すると対話型のプロンプトが起動します。
1 | $ bundle exec ruboty |
ruboty pingコマンドを実行します。
1 | > ruboty ping |
ruby helpコマンドで一覧が見れます。
1 | > ruboty help |
Ruboty はhubotと同様にプラグインで拡張できます。
Helloプラグインを作成してみましょう。
Helloプラグインはhelloと挨拶すると、helloと挨拶を返すだけのプラグインです。
hello.rb
1 | module Ruboty |
Ruby::handlers
の名前空間の下にプラグインの名前でクラスを作成し、on
メソッドを定義します。on
メソッドの第1引数はコマンドです。正規表現で定義できます。
第2引数は呼び出すメソッド名、コマンドの説明等のオプションを指定します。
実行してみましょう。-l
オプションで読み込むファイルを指定することができます。
1 | ⇒ bundle exec ruboty -l hello.rb |
また、bot名のprefixなしに実行することもできます。
allオプションを使って実装します。
サンプルとして、ぬるぽプラグインを実装します。
これはぬるぽという言葉に反応するプラグインです。
nullpo.rb
1 | module Ruboty |
実行してみましょう。-l
オプションで読み込むファイルを指定することができます。
1 | $ bundle exec ruboty -l nullpo.rb |
bot名のprefixがなくても反応していることが確認できます。
次回はSlackと連携させる方法を紹介します。