SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
CircleCIで
結果をSlackに
通知してみる
2017.2.9 CI/CD Night
自己紹介
中平 祐介
株式会社チームスピリット
サーバサイドの開発が中心
CI関係はほとんど触ったことがないです
https://github.com/yNakahira
弊社の開発
開発者 レビュアー
• チケットベースで開発
• レビュアーにPRでレビュー依頼
レビューお願いします
開発者 レビュアー
(lintエラー出てるじゃん・・))
レビューお願いします
最近の悩み
• レビュー時にLintエラーが見つかる
• 差し戻しが発生し時間がかかる
• そういったやり取りはなくしたい
レビュアーが確認するときに
Lintエラーが発生していないか
一目でわかる方法はないか?
CircleCIを使ってみる
• Github・bitbucket連携ができ、CIを実行でき
るサービス
• 1コンテナ無料(月1500分までが無料枠)
• Slack連携もある
セットアップ
• https://circleci.comを開く
セットアップ
• 「Add Project」から対象のリポジトリを選択
これでリポジトリとの
連携設定は完了
セットアップ
• circle.ymlの準備
• circle.ymlとは?
• CircleCIでどんなテスト・環境を準備するかを記述
するファイル(YAML形式)
• テスト以外にもデプロイとかも記述できる
• リポジトリのルート直下に配置する必要がある
circle.yml
circle.yml
起動時のコマンドを記載
テスト時のコマンドを記載
テスト後のコマンドを記載
package.json
• 今回はESLintの結果をHTMLで出力するために、
eslint-html-reporterをインストール
Pushしてみる
• 成功時
• 失敗時
結果がレポート出力
レポート出力結果
PRにも通知される
Slackとの連携
参考
http://qiita.com/su-
kun1899/items/640f6fa8b48749396c16
• 10分もあれば設定可能です
• Slackへの通知はFailed/Fixedのときのみを設定しました
まとめ
• レビュアーもlintエラーが発生しているか一目で分かる
ようになった
• Slackにも通知されるため、レビューイも修正に早く
着手できる
• circle.ymlのジョブ設定に慣れるまではTry&Error
でやっていたが、CircleCIのProject Settings >
Test Commandsからジョブ実行できる(らしいが試
していない)
参考:http://in.fablic.co.jp/entry/circleci-tips
これで当初の目的は
達成できたが・・
もう少しやってみる
• Lintエラーを直接PRにコメントしてくれる便利なパッケージ
(saddler)があったので使ってみる
参考:https://github.com/packsaddle/ruby-saddler
http://qiita.com/noboru_i/items/2f30296db1c8a6dfbd9b
※今回はEslintに対応する形式で.shを書き換えました。
完全に手柄の横取りです。
run-eslint.sh
run-eslint.sh
必要となるモジュールをインストール
Masterブランチとの差分を取得し、
差分に対してeslintを実行する。
SaddlerがGithubのPRにlint結果を自動でコメント
circle.yml
shを実行する権限を付与し、shを実行
CircleCIに環境設定を行う
• GitHubの“Personal Access Tokens”でCircleCIからコメ
ントするために必要となるトークンを作成
• 対象プロジェクトの設定画面より、"Environment
variables"を選択、下記を設定する。
• Name: GITHUB_ACCESS_TOKEN
• Value: 上で作成したトークン
Pushしてみる
Lintエラーを直接コメントしてくれる
今度こそまとめ
• PRに直接コメントされるので、CI環境をいちいち確認
しなくてもよくなった
• レビュアーが本質的なレビューに専念できる(たぶ
ん)
• PRにコメントされるし、Slack連携いらないかも・・
• CIってやっぱり大事!!

Weitere ähnliche Inhalte

Was ist angesagt?

pythonでつくるiPhoneアプリ
pythonでつくるiPhoneアプリpythonでつくるiPhoneアプリ
pythonでつくるiPhoneアプリ
Kazufumi Ohkawa
 

Was ist angesagt? (20)

Git LFSを触ってみた
Git LFSを触ってみたGit LFSを触ってみた
Git LFSを触ってみた
 
PyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめPyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめ
 
マジカルsvnとキュアgit
マジカルsvnとキュアgitマジカルsvnとキュアgit
マジカルsvnとキュアgit
 
Kivy studies
Kivy studiesKivy studies
Kivy studies
 
SIerは如何にしてGitHub Enterpriseを導入するにようになったか
SIerは如何にしてGitHub Enterpriseを導入するにようになったかSIerは如何にしてGitHub Enterpriseを導入するにようになったか
SIerは如何にしてGitHub Enterpriseを導入するにようになったか
 
Git勉強会
Git勉強会Git勉強会
Git勉強会
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 
会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
 
GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理
 
Metahub for github
Metahub for githubMetahub for github
Metahub for github
 
GitLabを骨までしゃぶりつくす@ゆるUniStudy#7
GitLabを骨までしゃぶりつくす@ゆるUniStudy#7GitLabを骨までしゃぶりつくす@ゆるUniStudy#7
GitLabを骨までしゃぶりつくす@ゆるUniStudy#7
 
pythonでつくるiPhoneアプリ
pythonでつくるiPhoneアプリpythonでつくるiPhoneアプリ
pythonでつくるiPhoneアプリ
 
Gitの使い方あれこれ
Gitの使い方あれこれGitの使い方あれこれ
Gitの使い方あれこれ
 
(自分流)Gitの運用ルール
(自分流)Gitの運用ルール(自分流)Gitの運用ルール
(自分流)Gitの運用ルール
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
 
Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回
 
Git & GitHub を使いこなしてハッピーになろう! - WordBench 名古屋 & concrete5 名古屋 合同勉強会
Git & GitHub を使いこなしてハッピーになろう! - WordBench 名古屋 & concrete5 名古屋 合同勉強会Git & GitHub を使いこなしてハッピーになろう! - WordBench 名古屋 & concrete5 名古屋 合同勉強会
Git & GitHub を使いこなしてハッピーになろう! - WordBench 名古屋 & concrete5 名古屋 合同勉強会
 
Git紹介
Git紹介Git紹介
Git紹介
 
VSCode Conference Japan 2021 kyusque
VSCode Conference Japan 2021 kyusqueVSCode Conference Japan 2021 kyusque
VSCode Conference Japan 2021 kyusque
 

Andere mochten auch

Andere mochten auch (20)

ReactとSeleniumの幸せな関係
ReactとSeleniumの幸せな関係ReactとSeleniumの幸せな関係
ReactとSeleniumの幸せな関係
 
サンプルTodoから見るreact,flux,redux(古川)
サンプルTodoから見るreact,flux,redux(古川)サンプルTodoから見るreact,flux,redux(古川)
サンプルTodoから見るreact,flux,redux(古川)
 
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
 
SWTT2016 ミニハックをふりかえる
SWTT2016 ミニハックをふりかえるSWTT2016 ミニハックをふりかえる
SWTT2016 ミニハックをふりかえる
 
静的解析、はじまったな
静的解析、はじまったな静的解析、はじまったな
静的解析、はじまったな
 
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略
 
Build an iOS app with ConcourseCI
Build an iOS app with ConcourseCIBuild an iOS app with ConcourseCI
Build an iOS app with ConcourseCI
 
アイコンがなぜずれるのか?
アイコンがなぜずれるのか?アイコンがなぜずれるのか?
アイコンがなぜずれるのか?
 
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
 
Salesforce dug meetup#8isvforce
Salesforce dug meetup#8isvforceSalesforce dug meetup#8isvforce
Salesforce dug meetup#8isvforce
 
Chromeデベロッパーツール
ChromeデベロッパーツールChromeデベロッパーツール
Chromeデベロッパーツール
 
Mobile + HTML5
Mobile + HTML5Mobile + HTML5
Mobile + HTML5
 
S3 Event Notifications やってみた
S3 Event Notifications やってみたS3 Event Notifications やってみた
S3 Event Notifications やってみた
 
Lightning コンポーネント Deep Dive
Lightning コンポーネント Deep DiveLightning コンポーネント Deep Dive
Lightning コンポーネント Deep Dive
 
Lightning を利用した開発とケーススタディ
Lightning を利用した開発とケーススタディLightning を利用した開発とケーススタディ
Lightning を利用した開発とケーススタディ
 
VOYAGE GROUPの成長する勉強会カルチャー
VOYAGE GROUPの成長する勉強会カルチャーVOYAGE GROUPの成長する勉強会カルチャー
VOYAGE GROUPの成長する勉強会カルチャー
 
オリジナル社内ツールの末路
オリジナル社内ツールの末路オリジナル社内ツールの末路
オリジナル社内ツールの末路
 
Traffic signs
Traffic signsTraffic signs
Traffic signs
 
Jures hailey lecture_2-21-2017
Jures hailey lecture_2-21-2017Jures hailey lecture_2-21-2017
Jures hailey lecture_2-21-2017
 

Ähnlich wie Circle ciで結果をslackに通知してみる

Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩
Kazunori Hamamoto
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
 

Ähnlich wie Circle ciで結果をslackに通知してみる (20)

Lt7 circle ci hugo
Lt7 circle ci hugoLt7 circle ci hugo
Lt7 circle ci hugo
 
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようC++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
 
Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩
 
kintone-developer-エコシステム ~kintone Café 大分 Vol.2~
kintone-developer-エコシステム ~kintone Café 大分 Vol.2~kintone-developer-エコシステム ~kintone Café 大分 Vol.2~
kintone-developer-エコシステム ~kintone Café 大分 Vol.2~
 
リモートチームとふりかえり改善フレームワーク
リモートチームとふりかえり改善フレームワークリモートチームとふりかえり改善フレームワーク
リモートチームとふりかえり改善フレームワーク
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略
 
SQiP2016 SIG8
SQiP2016 SIG8SQiP2016 SIG8
SQiP2016 SIG8
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
 
CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan
CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKanCI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan
CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan
 
CEDEC2015講演 チーム開発をスムーズにするために
CEDEC2015講演 チーム開発をスムーズにするためにCEDEC2015講演 チーム開発をスムーズにするために
CEDEC2015講演 チーム開発をスムーズにするために
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
connpass特徴と開発の流れ
connpass特徴と開発の流れconnpass特徴と開発の流れ
connpass特徴と開発の流れ
 
やっちゃえkntone developer[公開用]
やっちゃえkntone developer[公開用]やっちゃえkntone developer[公開用]
やっちゃえkntone developer[公開用]
 
LUIS x Azure Bot Service
LUIS x Azure Bot ServiceLUIS x Azure Bot Service
LUIS x Azure Bot Service
 
kintoneアプリをjavascriptでいじってみよう
kintoneアプリをjavascriptでいじってみようkintoneアプリをjavascriptでいじってみよう
kintoneアプリをjavascriptでいじってみよう
 
TravisCIでActionScriptを動かす
TravisCIでActionScriptを動かすTravisCIでActionScriptを動かす
TravisCIでActionScriptを動かす
 
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
 
観たいセッションがかぶった!なんて心配ご無用。今年は、興味の赴くままにあれもこれも♪
観たいセッションがかぶった!なんて心配ご無用。今年は、興味の赴くままにあれもこれも♪観たいセッションがかぶった!なんて心配ご無用。今年は、興味の赴くままにあれもこれも♪
観たいセッションがかぶった!なんて心配ご無用。今年は、興味の赴くままにあれもこれも♪
 

Circle ciで結果をslackに通知してみる