継続的インテグレーションテスト入門

(今回はホントに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