継続的インテグレーションテスト入門
(今回はホントにLT⌛️)
Kunibiki.rb#4
セラリン
Kunibiki.rbのFounder
Rubyプログラマ 4年生
1年半前に関西から来た基本テンション低めの関西人
ゲームと漫画とダイエットが趣味
最近USJ行くも、DQアトラクションと他とのテンションが違いすぎると友人に怒られる。
Twitter: @Selime_0123
Who am I
Interest
Rect Riot Vue electron Swift Docker Go Python
Learning
JavaScript html5 Docker CI Linux Nginx
job
Ruby(RubyonRails) JQuery ABAP
Recently 👻
ざっくりKunibiki.rb
-
こじんまりとした勉強会
(発表者と参加者の距離が近いゆるめの勉強会)
(お仕事や趣味で最近困ったことや今更人に聞きたいこと情報共有を気軽にできたらいいなー ) -
もっと気軽にみんなLTやろ
(今話題の話、高度な技術の話...そうじゃなくても!だがマサカリは歓迎!) - ハンズオンもやりたい
- っていうのが松江にないので作った(2016/10)
初めての方のための
はじめに
・CIツールを使ったことない人※
CIの便利さを知ってもらいたい😎
※テストフレームワーク(RSpec)はある程度知っている前提で話します
・CIツールを使ったことある人
オススメのCIツール、使い方を教えて下さい😁
...かなりうっすい内容だよ?😨OK?
継続的インテグレーションテスト入門
みなさんCIツール使っていますか?
CI(継続的インテグレーション)とは
ビルドやテストを継続的に実行していく為の習慣のこと
CIを使った開発例
CIツール
リポジトリ
チャットツール
メールなど
Pull Request
RSpec実行
結果通知
テストコードを書く
何がうれしいのか😄
- テストコードが大きくなっていくと、修正のたびに手元でrspecコマンドを実行するのは大変。
(面倒だったり実行忘れたり...)
- 複数の開発者によって開発する場合はそれぞれ変更の度に実行したい。結果を共有したい。
→ サーバー側でコードを変更されたことを検知して自動でテストコードを実行し、結果を通知してくれる。
余談 ☕️
テストに失敗すると
Jenkinsが犯人に鉄砲玉が飛ばす有名(?)な動画
https://www.youtube.com/watch?v=1EGk2rvZe8A
CIでできること
(サーバーで実行可能なことはだいたいできる)
- 構成成管理との連携
- 単体テスト
- デプロイ
- フィードバック
- ビルド
- コーディング規約チェック
- 機能テスト
- タスク管理との連携
CIツールいろいろ
- Jenkins
- CircleCI
- Wecrker
- TravisCI
- GitlabCI
- drone.io
- MagnumCI
...etc
実演
今回はCircleCIでやってみた
CircleCIの特徴
- GitHubと連携ができる
- コンテナという概念の元、コンテナの中でビルドを走らせる
- 1コンテナ利用の場合は無料
(複数使うためには課金が必要)
手順
1. テスト用のリポジトリをGithubに作っておく
2. CircleCIの登録をする
(Githubアカウントを指定する)
3. テスト対象のリポジトリを指定する
...以上!!
勝手にビルドが行われる
Slackとの連携
1. Slack: 「Apps&integrations」からCircleCIを探す
2. 通知したいチャンネルを選択し、Webhook URLを控える
3. CircleCI: 先ほどのリポジトリを選択し、Webhook URLを設定(「project settings」 → 「Chat Notifications」)
4. Slack: チャンネルを確認
...以上!!
試しにテストを失敗させたりしてみる
Thank you for your time.
Kunibiki#4
By serarin
Kunibiki#4
- 613