VSハッカソン倶楽部 CI勉強会で発表した資料となります。 https://vshtc.doorkeeper.jp/events/26853
会員事業部サービス開発グループ長の村田です。 私は2015年1月から会員事業部でサービス開発エンジニアをやっていますが、2014年4月までは技術部開発基盤グループで Web サービス開発を加速させる様々な取り組みを実施していました。本稿では、開発基盤グループ時代に私が取り組んだ開発者テストの失敗を追跡しやすくする取り組みについて説明します。 クックパッドの Web サービス開発と CI クックパッドのサービス開発は、大きくても5名くらいの小さなチームが一つの機能を担当します。しかし、多数のチームが1つの大きな Rails アプリケーションを同時に変更するのが特徴です *1。 Web サービス開発を加速する工夫には様々な方向性が考えられますが、ここでは、クックパッドのようなスタイルでの Web サービス開発を加速するために開発者テストを何如に円滑にするかを考えます。 図: オムキンス クック
Blogs Doin' DevOps 15 must have Jenkins plugins to increase productivity Jenkins is a vastly used continuous integration tool for the IT industry which is built and used around plugins. It’s core is the Jenkins tool and there are 100’s of plugins available to enhance its power and usability. Let’s take a look at a few of the best plugins to increase the productivity. Global Build Stats Plugin–It’s
Jenkinsユーザカンファレンス2015に参加・発表してきました。 参加者も700人ぐらいいたようで非常に活気があり、各セッションもJenkinsを中心としたシステムの話から、何故CIなのかなど、多岐に渡る発表があり刺激的でした。 我々は5分のLTで発表させて頂きました。短い時間なので色々と説明を省略した箇所がありましたが、アップロードしたスライドではある程度補足しています。 継続的セキュリティテストのコンセプトでVAddyを開発・運用していますが、世界でも同じコンセプトでGoogleが社内ツールとして開発していたり、カーネギーメロン大のブログで提唱されていたりと、あと数年もすると大きなトレンドになるのは確実です。 継続的セキュリティテストが普及するためには、専門知識不要で簡単に使えて、検査精度が高く、CIのフローに乗るように短時間で終わる必要があります。これらのハードルを乗り越えるため
ソフトウェア開発グループあるいはソフトウェア開発組織の開発スピードが遅いとか速いとはか、何を基準に判断するのでしょうか。 人が単純な作業を行わずに、自動化できる部分を徹底的に自動化した場合、残っている部分が本当の意味では、その組織での開発スピードです。 たとえば、システム全体のビルド作業を手作業で週に一回行っており、開発メンバーは、単体テストも書かずに、高残業をしながら一週間に多くの機能を実装したと報告する開発を考えてみます。もちろん、他のモジュールとのビルドもしていないし、ビルドするのは翌週の月曜日ということになります。これは、80/90年代によく行われた開発スタイルです。 一方で、Jenkinsを使用しながら継続的インテグレーションを行い、自動実行される単体テスト・システムテストを作成しながら、システム全体の機能のデグレードや副作用が起きていないかを常に検証しながら、開発メンバーがあま
Oct 19, 2014 iTunes Connectがアップデートされてから、1つのアプリのバージョンに対して複数のipaをアップロードできるようになりました。 しかし、ビルド番号が重複しているとエラーが発生してしまうので、ビルド番号をインクリメントしていく必要があります。 手動でビルド番号をインクリメントしてリポジトリにコミットしていくと、分散管理では矛盾が生じてしまうので、 ビルド番号にはJenkinsのビルド番号を指定し、リポジトリにはコミットしないことにしてみました。 セットアップ Jenkinsでxcodebuildを実行する前に以下のコマンドを実行するだけです。 自分はJenkinsにアドホック配布用のipaとAppStore用のipaの両方を作成させていて、 AdHoc配布用のipaをTestFlightにアップロードし、AppStore用のipaはビルド成果物として保存し
先日公開した記事「JenkinsでCI環境構築チュートリアル(Windows編)」では、Jenkinsのインストールとジョブの作成方法についてご説明しました。今回は特定のブランチにPUSHされたタイミングでGitHubと連携して最新ファイルを取得する方法をご説明します。 完成イメージ ~JenkinsとGitHubの連携~ 実際の開発シーンを想定して上記の図のようなフローを構築したいと思います。開発者が変更したソースコードをGitHubにPUSHしたことをトリガーにJenkinsにその旨を通知します。Jenkinsはその通知を受けて、最新ファイルをGitHubから取得してくる仕組みとなります。 処理の流れとは逆になりますが、まずはJenkins側で「GitHubから通知を受け取る設定」と「ジョブの作成」から行っていきます。 Jenkinsの設定 ~GitHubからの通知を受け取る設定~ 本
JenkinsとHipChatを連携させると、Jenkinsジョブの結果をHipChatに通知したり、HipChatからbotコマンドを投げてJenkinsのジョブを起動したりすることができます。 HipChatそのものや、Hubotを使った連携のさせ方は以下を参照。 iOSアプリ開発でもCI/継続的デリバリしようぜ(終):Jenkins+HipChat+Hubotをチーム開発に導入してお手軽CI (1/3) - @IT で、Hubotを運用するのも面倒なので、Jenkinsプラグインだけでお気軽にbotコマンド対応させる方法がこちらです。 設定方法 HipChatにJenkins用のアカウントを作成する Jabber Pluginが使用する、HipChatのアカウントを作ります。Jenkins側では、XMPP/Jabber infoで表示される値を設定していきます。上記のサイトに詳しい手
Bakusoku Iterations Tokyo at mixi (2014/5/29) の発表資料です http://deploygate.doorkeeper.jp/events/11579
当社はCookieを使用して、お客様が当社のWebサイトでより良い体験を得られるようにしています。引き続き閲覧する場合は、プライバシーポリシーに同意したことになります。
#frontrend Vol.5に行ってきた - しるろぐ 前回のFrontrendから約半年。11/16のFrontrend Vol.6に参加してきました。 http://frontrend.github.io/events/06/ いつやるの?Git入門 概要 Gitのコマンドを覚えるだけじゃなくて、Gitの仕組みを理解しよう! speaker 松下 雅和(まつした まさかず)@matsukaz slide http://www.slideshare.net/matsukaz/git-28304397 いつやるの?Git入門 v1.1.0 from Masakazu Matsushita メモ コマンド紹介とかtips紹介じゃなくて、gitの仕組みの説明。 スライドがわかりやすかったのでメモとかいらない。 完全保存版だ! フロントエンジニアとCIとテスト 概要 フロントエンドでも十分j
IRCを導入した 遠隔地で作業しているひともいた中でメールでのやりとりはとても面倒だった。 (同じオフィスで開発してるひとからもメールでいろいろ来た) だるかったので、ngIRCdを導入して、やりとりがすごく楽になった。(基本英語だが) リポジトリを分割した サーバに置いてあるものがすべて1つのリポジトリで管理されていた。(僕は泣いた) だるかったけど、頑張って適切なサービスの単位で分割した。 ファイルサーバ作った クラウドに置かないほうがいいファイルとか共有するため。 ユニットテスト直した ぶっ壊れていたのをとりあえず動くようにしてから、とにかく自分が触るところを中心に追加していった。 カバレッジが最初は30%くらいだったけど、いまは90%近くまで上がっていて、 僕に多少の精神的な安寧をもたらしてくれている。 Pull Reqestベースの開発にした それまでは(ローンチ後も)maste
前提: GitHub flow を使っていてCIサーバーはJenkins 最近ちょっと開発フローの改善をして、とてもよく機能してて満足しているので紹介してみる。 この改善をやる前の悩み: pull-requestでコードレビューはできるのだけど、cssとかjavascriptなどの見た目や動作の変更ってコードだけだとわかりにくい。レビューする人が各自ローカル環境で実行するのもだるい。 コードを読まないデザイナーとかプロダクトオーナーとかの人が、pull-requestのレビュープロセスに簡単に参加できない(非開発者全員のところでローカル環境設定するのはだるすぎる)。 コード的にokに見えてmasterにmerge後、何か問題(特に仕様的な問題や、デザイン的な問題)が発生した場合、「修正branchを作ってpull-request」というフローを再度回さないといけない。最初のpull-req
http://codeascraft.com/2013/09/23/lxc-running-14000-tests-per-day-and-beyond-part-1/ EtsyのエンジニアブログでLXCによる仮想化でCIを効率化した事例が紹介されてます。 1日65件の本番アップ。それぞれに30本のテスト(単体テスト、結合テスト、機能テスト、スモークテスト etc.)をする。30 x 65 = 1,950本/日 全員がroot権限をもって仮想マシンに何でもインストールできるので、仮想環境が本番と同一かどうかは限らない。そこでエンジニアがdiffをJenkinsサーバに送ると、最新のマスターブランチに対してテストを実施してくれる tryライブラリを使っている。同時に10人のエンジニアがtryライブラリを利用でき、これにより更に13,700本/日のテストが実施される。 同一のJenkinsワ
今回の課題 こんにちは植木和樹です。7月にserverspecを使ったChefの自動テストのエントリを書きました。 【AWS】JenkinsとserverspecでChefのテストを自動化する このエントリは初めてJenkinsを触った時に書いたので、いろいろと流儀がわかっていませんでした。その後弊社にJenkinsマイスターの渡辺修司さんが入社したということで、Jenkinsの設定について見てもらいました。その時に次の6点を見直すよう指摘がありました。 ジョブは意味ある単位で1つにまとめるべし ジョブで実行するシェルスクリプトもgitから取得すべし EC2の起動に失敗したら後続処理を停止させるべし serverspecの実行結果はJUnit(XML)形式で出力すべし 実行結果のXMLをJenkinsで読み込んで統計グラフを出力すべし 定時実行でなくgit push hookを入れるべし
AndroVMがいつの間にかGenymotionに名前変わってました。 Genymotion - BOOST YOUR APP TESTING! Simple, practical and effective. 「x86エミュレータとそんなに変わらないんでしょ」と思っていましたが、これを機にインストールして動かしてみたらサックサクのヌルヌルで驚きました。 もしかして、実機より速いのでは?と思って2、3000行の比較的小規模なライブラリでconnectedInstrumentTestを実行して、その実行時間を比較してみました。 結果は環境によって結構変わると思うので、あくまで目安で。 実機よりも速かった しかもエミュレータだとGoogle Playのアプリが落とせなかったりするのですが、Googleアカウントを登録して同期することもできるし、アプリを落として実機より軽快な環境で遊ぶこともで
一昨日 Testing Casual Talks #1 に参加した。名前の通り、ソフトウェアテストに関するカジュアルなカンファレンス。とても面白かった。すこし思ったところを書いていこう。 テストのエンジニアリング トップバッターの @ikasam_a さんの発表では Software Engineer in Test at DeNA ということで、氏が勤務先でテストエンジニアリング部門を立ち上げていくにあたってのいきさつや背景といったところが述べられていた。 テストは開発者の生産性を向上するためにある、生産性向上のためにテストを書くテストエンジニア、近年複雑化するテストの実行環境を構築するのもテストエンジニアの役目、"Testing Activities SHOULD be in Developments" ─ テスト活動は (従来型のQAのように開発の外ではなく) 開発の中で行われるべき
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く