狠狠撸

狠狠撸Share a Scribd company logo
継続的インテグレーション
  3分クッキング
~検証ビルド環境をつくろう~
       @cointoss1973
       2012/07/08(日)
 アジャイルサムライ読書会#8
  #agilesamurai #新宿道場
自己紹介
? こいんとす @cointoss1973

  – Programming Language
     ? C, C++, Python
  – OS
     ? VxWorks
          – HP-UX, Tru64 UNIX, Solaris, Ubuntu, Windows
  – Activity
     ?   #47redmine スタッフ
     ?   #scmbc サポータ
     ?   #TokyoMercurial
     ?   #日本鼻メガネの会
告知
? 8月あたりに TDD+ペアプロ+DVCS を練習
  する初心者向け勉強会(仮) #devstart の開催
  を計画中です。
 – スタッフ募集中!!
 – 来週の日曜日に大森駅近辺でスタッフで素振
   り予定
本日つくるものは…
? こんな困ったことありませんか?
 – pullしたソースコードがビルドできない!
 – pullしたソースコードがテストで落ちる
   ? もちろん、一人でも使えますが複数人での同時開
     発する場合にとても有効な構成になります
? JenkinsとMercurialと使って、ビルドやテス
  トが通ったものだけを中央リポジトリに
  push構成のつくりかたをご紹介します
検証ビルドの位置づけ
作業              Subversionの場合のコ 検証済みビルド
                ミット後にJenkinsでビル (今回)
                ド

編集?マージ          開発者               開発者
コミット(SVN)       開発者               開発者
ビルド             事前に開発者が必ず実施       Jenkinsに任せることも可能
                コミット後Jenkinsが実施
テスト             事前に開発者が必ず実施       Jenkinsに任せられる
                コミット後Jenkinsが実施


      せっかくJenkinsがあるのに毎回開発者がビ
       ルドテストしないといけないの(??ω?`)
完成イメージ
トッピングと味付け
? 言語
 – C++
 – コンパイラ(MSBuild)
    ? Visual Studio 2010 Express


? 内容
 – fizzbuzz
    ? 第1引数で、最大値を指定可能とします
材料
? ハードウェア
 – OS : Windows XP SP3 を使います
 – ご家庭にある使わなくなった古いマシンでOKです
 – CドライブにWindows 、Dドライブがあるとベターです

? ソフトウェア
   ? Jenkins 1.473 (最新版) http://jenkins-ci.org/
   ? TortoiseHg 2.4.2 (最新版) http://tortoisehg.bitbucket.org/ja/
   ? Apache(HTTP Server) 2.2.22 (安定版)
       – http://httpd.apache.org/download.cgi#apache22
   ? Cygwin 1.7.15 (最新版) http://www.cygwin.com/
            ? wget を使いたいだけなので代わりのものでもOK。
   ? Visual C++ 2010 Express
   ? Python 2.7.3
   ? PuTTY
作り方
? 4~5人前
 1. Windows マシンに
    Jenkins, TortoiseHg, Apache, Python , VisualStu
    dioをインストールします
      1. Cドライブと、Dドライブがあると理想的
 2.   Jenkins を起動し、プラグインを入れます
 3.   MercurialとApacheを連携します
 4.   Mercurialのhookスクリプトを設定します
 5.   JenkinsにJOB設定をします
Jenkins
? インストール先
 – D:Jenkins にインストールしておくと無難
 – ビルド結果のファイルをある程度保存しておくと良い
? インストール完了後
 – インストール後下記URLで自動でブラウザが開いてエラー画面が出る
   が慌てない(Jenkinsさんが起動中である)
 – http://localhost:8080/
? プラグイン
 – JenkinsのGUIから下記プラグイン達を導入(簡単)
 – Mercurial plugin
     ? polling 設定を忘れずに。pollingの期間は@dailyでOK
         – 実際のトリガは、Mercurialのtestingリポジトリへのhookで行う
 – MSBuild plugin
     ? Visual Studioコンパイルしやすくする。なくても
 – Warnings plugin
     ? C/C++のコンパイラの警告集計
TortoiseHg
? インストーラをダウンロードして実行す
  るだけ
 – お好みで日本語メニューにどうぞ
 – hg コマンドも同梱されます、PATH環境変数
   にも自動で追加されます
 – ssh用のクライアントも同梱されてるみたい
? インストール先
 – C:Program FilesTortoiseHg
PuTTY
? sshキー作成用にPuTTYをインストール
  ? http://www.chiark.greenend.org.uk/~sgtatham/putty/
Mercurial
 ? D:repos にtestingリポジトリをおく
 ? hg init D:reposfizzbuzz_testing
 ? .hg/hgrc に下記hookを追加
[hooks]
incoming.jenkins = wget -q
http://zion:8080/mercurial/notifyCommit?url=http://zion/repos/hgweb.cgi/fizzbuzz_testing/
Python
? Pythonはバージョンがくつかあります
 – Python 2.7.3 とする(TortoiseHgと合わせておく
   と無難)
 – C:Python27
? 環境変数 PATH に”追加”
 – C:Python27;C:Python27Scripts
Apache
? D:repos 以下に公開リポジトリをおきます

? hgweb.cgi にて連携します
Apache (httpd.conf)
? httpd.conf
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    AddHandler cgi-script .cgi
  Alias /repos D:/repos
  <Directory "D:/repos">
    Options +ExecCGI
    Order allow,deny
    Allow from all
    DirectoryIndex hgweb.cgi
  </Directory>
Apache (.config)
? D:repos.config
    [web]
    templates = C:/Program Files/TortoiseHg/templates
    push_ssl = False
    allow_push = *

    [paths]
    / = D:/repos/*


? .config
           – ドットで始まるファイルは、Windowsではコマンドプロ
             ンプト上で echo aaa > .config で作ってください(ダサい)
Apache (hgweb.cgi)
? D:reposhgweb.cgi

   [web]
   templates = C:/Program Files/TortoiseHg/templates
   push_ssl = False
   allow_push = *

   [paths]
   / = D:/repos/*
Apache restart
? apache を Restart
Visual Studio 2010 Express
? 普通にダウンロードしてインストール

? 検証ビルドで本当に必要なのはコンパイ
  ラ(MSBuild.exe)だけなので、.NETフレー
  ムワークだけインストールでもOK(未確
  認)
 C:WINDOWSMicrosoft.NETFrameworkv4.0.30319MSBuild.exe
実食(実演)
? 実際に開発者のマシン(matrix)から、検証
  ビルドサーバ(zion) に push してみます




    本日は Oracle Virtual Box上にインストール、
    セットアップ済みのマシンWindows XP SP3
            を用意してあります
            (下ごしらえ済み)
食べ方
? 開発者A
   ?   bitbucketなど中央リポジトリからcloneする
   ?   ソースコード追加?修正?変更など
   ?   コミットする
   ?   ビルドサーバにpushする
? 開発者B                                  おそらく開発者Aが
                                         コミットした
   ?   ソースコード修正                           changeset
   ?   コミット
   ?   push ( pull して merge してと表示される)
   ?   pull して merge
   ?   push
良い点
? ビルドサーバ側で、pushされたchangesetの
  検証内容を決めることができます。
 – まずはビルドだけでOK
   ? 欲張らない
 – なお、中央リポジトリにはJenkinsからのみ
   pushできるようにしておくと確実

? アレンジ
 – 開発者側の変更無しで、”アレンジ”可能
アレンジ
? 自動テストを実施してテストが通らない
  コードを通さない
? コードの静的検査が不適合のコードは通
  さない
? コミットログにチケット番号が入ってい
  ない場合(ry
? push –f したマージしていないコード(ry
? 追加されたchangesetをメールで飛ばす
    チームのポリシーやお好みに応じて、クリーンコードから外れ
       る良くない変更は事前に防止することができます
注意点
? 開発者が必ず検証ビルドを通すように環境を
  構築する
 – 直接中央リポジトリにpushさせない


? “検証ビルド”に時間がかかると、継続的イン
  テグレーションの旨みであるこまめに統合す
  る機会が少なくなります
 – 10分以内が理想。15分が限界
  ? ビルドマシンを強化する
  ? コンパイルをインクリメンタルビルドにする
課題
– Mercurialのリポジトリを公開する方法( Apache
  + Mercurial の連携)はもっとcoolな方法がある
  と思います。
   – http://mercurial.selenic.com/wiki/PublishingRepositories
今日できなかったこと
? SSHの連携
 – jenkinsさんから ssh で bitbucket.org に接続すると、
   (おそらく)入力待ちで止まってしまうため hg
   clone ssh://… ができなかった
   ? 仕方なく https を使うが .hg/hgrc ファイルに平文で
     password を書くのでセキュリティ的アレ
? ビルドエラー時のrollback
 – アイデアとしては、ビルド開始時にファイルを作
   成しておき、ビルドが正常に完了後、ビルド完了
   時にファイルがあったらビルドが失敗したと判断
   して rollback する
ご清聴ありがとうございます
? JenkinsとMercurial(DVCS)を連携して、ク
  リーンなリポジトリに保とう
? 自動化大事
? Windows環境でもめげない
 – CygwinやMinGW/MSYSなどPOSIX環境を用意
   することでなんとかなることも多い

More Related Content

What's hot (20)

Jenkins と groovy
Jenkins と groovyJenkins と groovy
Jenkins と groovy
Kohsuke Kawaguchi
?
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
Hori Tasuku
?
テスト环境まるごと础飞蝉にのっけてみた
テスト环境まるごと础飞蝉にのっけてみたテスト环境まるごと础飞蝉にのっけてみた
テスト环境まるごと础飞蝉にのっけてみた
Kazuaki Fujikura
?
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
torutk
?
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu
?
Keycloak で SSO #渋谷java
Keycloak で SSO #渋谷javaKeycloak で SSO #渋谷java
Keycloak で SSO #渋谷java
Yoshimasa Tanabe
?
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugOpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjug
Yuji Kubota
?
闯别苍办颈苍蝉と箩惭别迟别谤で负荷テストの自动化
闯别苍办颈苍蝉と箩惭别迟别谤で负荷テストの自动化闯别苍办颈苍蝉と箩惭别迟别谤で负荷テストの自动化
闯别苍办颈苍蝉と箩惭别迟别谤で负荷テストの自动化
Satoshi Akama
?
とある社内ビックデータ基盘にバッチ用コンテナ基盘を构筑してみた
とある社内ビックデータ基盘にバッチ用コンテナ基盘を构筑してみたとある社内ビックデータ基盘にバッチ用コンテナ基盘を构筑してみた
とある社内ビックデータ基盘にバッチ用コンテナ基盘を构筑してみた
Hiroshi Toda
?
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
Takeshi Komiya
?
自动化ーニバルだよ!骋顿颁16に见る自动化技术とテストのトレンド
自动化ーニバルだよ!骋顿颁16に见る自动化技术とテストのトレンド自动化ーニバルだよ!骋顿颁16に见る自动化技术とテストのトレンド
自动化ーニバルだよ!骋顿颁16に见る自动化技术とテストのトレンド
Takehara Ryo
?
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
hiro345
?
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Kazuyuki Mori
?
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
?
大規模な負荷て?もト?キト?キしない為のJava EE
大規模な負荷て?もト?キト?キしない為のJava EE大規模な負荷て?もト?キト?キしない為のJava EE
大規模な負荷て?もト?キト?キしない為のJava EE
Taiichilow Nagase
?
闯补惫补厂肠谤颈辫迟で奥别产顿谤颈惫别谤のテストコードを书きましょ
闯补惫补厂肠谤颈辫迟で奥别产顿谤颈惫别谤のテストコードを书きましょ闯补惫补厂肠谤颈辫迟で奥别产顿谤颈惫别谤のテストコードを书きましょ
闯补惫补厂肠谤颈辫迟で奥别产顿谤颈惫别谤のテストコードを书きましょ
Kohki Nakashima
?
Jenkins 2.0 Pipeline & Blue Ocean
Jenkins 2.0 Pipeline & Blue OceanJenkins 2.0 Pipeline & Blue Ocean
Jenkins 2.0 Pipeline & Blue Ocean
Akihiko Horiuchi
?
Java デバッガ活用術 ~勘デバッグ?print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ?print デバッグから抜けだそう~ #jjug_ccc #ccc_h4Java デバッガ活用術 ~勘デバッグ?print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ?print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Yusuke Yamamoto
?
JRebel for Android 1.0 を試食してみた
JRebel for Android 1.0 を試食してみたJRebel for Android 1.0 を試食してみた
JRebel for Android 1.0 を試食してみた
kimukou_26 Kimukou
?
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
Hori Tasuku
?
テスト环境まるごと础飞蝉にのっけてみた
テスト环境まるごと础飞蝉にのっけてみたテスト环境まるごと础飞蝉にのっけてみた
テスト环境まるごと础飞蝉にのっけてみた
Kazuaki Fujikura
?
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
torutk
?
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu
?
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugOpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjug
Yuji Kubota
?
闯别苍办颈苍蝉と箩惭别迟别谤で负荷テストの自动化
闯别苍办颈苍蝉と箩惭别迟别谤で负荷テストの自动化闯别苍办颈苍蝉と箩惭别迟别谤で负荷テストの自动化
闯别苍办颈苍蝉と箩惭别迟别谤で负荷テストの自动化
Satoshi Akama
?
とある社内ビックデータ基盘にバッチ用コンテナ基盘を构筑してみた
とある社内ビックデータ基盘にバッチ用コンテナ基盘を构筑してみたとある社内ビックデータ基盘にバッチ用コンテナ基盘を构筑してみた
とある社内ビックデータ基盘にバッチ用コンテナ基盘を构筑してみた
Hiroshi Toda
?
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
Takeshi Komiya
?
自动化ーニバルだよ!骋顿颁16に见る自动化技术とテストのトレンド
自动化ーニバルだよ!骋顿颁16に见る自动化技术とテストのトレンド自动化ーニバルだよ!骋顿颁16に见る自动化技术とテストのトレンド
自动化ーニバルだよ!骋顿颁16に见る自动化技术とテストのトレンド
Takehara Ryo
?
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
hiro345
?
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Kazuyuki Mori
?
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
?
大規模な負荷て?もト?キト?キしない為のJava EE
大規模な負荷て?もト?キト?キしない為のJava EE大規模な負荷て?もト?キト?キしない為のJava EE
大規模な負荷て?もト?キト?キしない為のJava EE
Taiichilow Nagase
?
闯补惫补厂肠谤颈辫迟で奥别产顿谤颈惫别谤のテストコードを书きましょ
闯补惫补厂肠谤颈辫迟で奥别产顿谤颈惫别谤のテストコードを书きましょ闯补惫补厂肠谤颈辫迟で奥别产顿谤颈惫别谤のテストコードを书きましょ
闯补惫补厂肠谤颈辫迟で奥别产顿谤颈惫别谤のテストコードを书きましょ
Kohki Nakashima
?
Jenkins 2.0 Pipeline & Blue Ocean
Jenkins 2.0 Pipeline & Blue OceanJenkins 2.0 Pipeline & Blue Ocean
Jenkins 2.0 Pipeline & Blue Ocean
Akihiko Horiuchi
?
Java デバッガ活用術 ~勘デバッグ?print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ?print デバッグから抜けだそう~ #jjug_ccc #ccc_h4Java デバッガ活用術 ~勘デバッグ?print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ?print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Yusuke Yamamoto
?
JRebel for Android 1.0 を試食してみた
JRebel for Android 1.0 を試食してみたJRebel for Android 1.0 を試食してみた
JRebel for Android 1.0 を試食してみた
kimukou_26 Kimukou
?

Viewers also liked (13)

History_of_waterfall_append
History_of_waterfall_appendHistory_of_waterfall_append
History_of_waterfall_append
Shin Semiya
?
Gradle a new Generation Build Tool
Gradle a new Generation Build ToolGradle a new Generation Build Tool
Gradle a new Generation Build Tool
Shinya Mochida
?
TDDBC 横浜 演習課題TDDBC 横浜 演習課題
TDDBC 横浜 演習課題
Hiroyuki Ohnaka
?
TDD Boot Camp 東京 for C++ 課題
TDD Boot Camp 東京 for C++ 課題TDD Boot Camp 東京 for C++ 課題
TDD Boot Camp 東京 for C++ 課題
Takashi Imagire
?
MongoDB Oplog入門
MongoDB Oplog入門MongoDB Oplog入門
MongoDB Oplog入門
Takahiro Inoue
?
ライフゲームでプログラミング
ライフゲームでプログラミングライフゲームでプログラミング
ライフゲームでプログラミング
Shinya Miyazaki
?
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
Yusuke Suzuki
?
ソーシャルゲームにおける础奥厂/惭辞苍驳辞顿叠利用事例
ソーシャルゲームにおける础奥厂/惭辞苍驳辞顿叠利用事例ソーシャルゲームにおける础奥厂/惭辞苍驳辞顿叠利用事例
ソーシャルゲームにおける础奥厂/惭辞苍驳辞顿叠利用事例
Masakazu Matsushita
?
ペアプロワークショップ
ペアプロワークショップペアプロワークショップ
ペアプロワークショップ
Yasui Tsutomu
?
coderetreat
coderetreatcoderetreat
coderetreat
Gabriele Lana
?
Jenkins user conference 東京
Jenkins user conference 東京Jenkins user conference 東京
Jenkins user conference 東京
Kohsuke Kawaguchi
?
尝颈苍耻虫システム管理入门
尝颈苍耻虫システム管理入门尝颈苍耻虫システム管理入门
尝颈苍耻虫システム管理入门
VirtualTech Japan Inc./Begi.net Inc.
?
History_of_waterfall_append
History_of_waterfall_appendHistory_of_waterfall_append
History_of_waterfall_append
Shin Semiya
?
Gradle a new Generation Build Tool
Gradle a new Generation Build ToolGradle a new Generation Build Tool
Gradle a new Generation Build Tool
Shinya Mochida
?
TDDBC 横浜 演習課題TDDBC 横浜 演習課題
TDDBC 横浜 演習課題
Hiroyuki Ohnaka
?
TDD Boot Camp 東京 for C++ 課題
TDD Boot Camp 東京 for C++ 課題TDD Boot Camp 東京 for C++ 課題
TDD Boot Camp 東京 for C++ 課題
Takashi Imagire
?
ライフゲームでプログラミング
ライフゲームでプログラミングライフゲームでプログラミング
ライフゲームでプログラミング
Shinya Miyazaki
?
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
Yusuke Suzuki
?
ソーシャルゲームにおける础奥厂/惭辞苍驳辞顿叠利用事例
ソーシャルゲームにおける础奥厂/惭辞苍驳辞顿叠利用事例ソーシャルゲームにおける础奥厂/惭辞苍驳辞顿叠利用事例
ソーシャルゲームにおける础奥厂/惭辞苍驳辞顿叠利用事例
Masakazu Matsushita
?
ペアプロワークショップ
ペアプロワークショップペアプロワークショップ
ペアプロワークショップ
Yasui Tsutomu
?

Similar to 継続的インテグレーション3分クッキング (20)

Jenkinsstudy#4kokawa
Jenkinsstudy#4kokawaJenkinsstudy#4kokawa
Jenkinsstudy#4kokawa
Takashi Kokawa
?
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
Hiro Yoshioka
?
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
?
大规模ソフトウェア开発とテストの経験について
大规模ソフトウェア开発とテストの経験について大规模ソフトウェア开発とテストの経験について
大规模ソフトウェア开発とテストの経験について
Rakuten Group, Inc.
?
ビルドサーバで使う顿辞肠办别谤
ビルドサーバで使う顿辞肠办别谤ビルドサーバで使う顿辞肠办别谤
ビルドサーバで使う顿辞肠办别谤
Masashi Shinbara
?
础尝惭ツールたべくらべ
础尝惭ツールたべくらべ础尝惭ツールたべくらべ
础尝惭ツールたべくらべ
Kaoru NAKAMURA
?
贵颈谤别蹿辞虫の开発プロセス
贵颈谤别蹿辞虫の开発プロセス贵颈谤别蹿辞虫の开発プロセス
贵颈谤别蹿辞虫の开発プロセス
Makoto Kato
?
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
?
オープン?ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン?ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン?ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン?ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Masaki Muranaka
?
恋する闯别苍办颈苍蝉
恋する闯别苍办颈苍蝉恋する闯别苍办颈苍蝉
恋する闯别苍办颈苍蝉
Hiroshi Nakao
?
190925 python-windows
190925 python-windows190925 python-windows
190925 python-windows
Takuya Nishimoto
?
20170124 linux basic_2
20170124 linux basic_220170124 linux basic_2
20170124 linux basic_2
YUSUKE MORIZUMI
?
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
?
170622 02
170622 02170622 02
170622 02
openrtm
?
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
JustSystems Corporation
?
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
Shigeru Hanada
?
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Kazumi IWANAGA
?
密着!わたしのコンソールアフ?リ开発环境
密着!わたしのコンソールアフ?リ开発环境密着!わたしのコンソールアフ?リ开発环境
密着!わたしのコンソールアフ?リ开発环境
Fumihito Yokoyama
?
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介
Makoto Nishimura
?
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
Hiro Yoshioka
?
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
?
大规模ソフトウェア开発とテストの経験について
大规模ソフトウェア开発とテストの経験について大规模ソフトウェア开発とテストの経験について
大规模ソフトウェア开発とテストの経験について
Rakuten Group, Inc.
?
ビルドサーバで使う顿辞肠办别谤
ビルドサーバで使う顿辞肠办别谤ビルドサーバで使う顿辞肠办别谤
ビルドサーバで使う顿辞肠办别谤
Masashi Shinbara
?
础尝惭ツールたべくらべ
础尝惭ツールたべくらべ础尝惭ツールたべくらべ
础尝惭ツールたべくらべ
Kaoru NAKAMURA
?
贵颈谤别蹿辞虫の开発プロセス
贵颈谤别蹿辞虫の开発プロセス贵颈谤别蹿辞虫の开発プロセス
贵颈谤别蹿辞虫の开発プロセス
Makoto Kato
?
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
?
オープン?ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン?ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン?ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン?ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Masaki Muranaka
?
恋する闯别苍办颈苍蝉
恋する闯别苍办颈苍蝉恋する闯别苍办颈苍蝉
恋する闯别苍办颈苍蝉
Hiroshi Nakao
?
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
?
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
JustSystems Corporation
?
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
Shigeru Hanada
?
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Kazumi IWANAGA
?
密着!わたしのコンソールアフ?リ开発环境
密着!わたしのコンソールアフ?リ开発环境密着!わたしのコンソールアフ?リ开発环境
密着!わたしのコンソールアフ?リ开発环境
Fumihito Yokoyama
?

Recently uploaded (8)

ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?

継続的インテグレーション3分クッキング

  • 1. 継続的インテグレーション 3分クッキング ~検証ビルド環境をつくろう~ @cointoss1973 2012/07/08(日) アジャイルサムライ読書会#8 #agilesamurai #新宿道場
  • 2. 自己紹介 ? こいんとす @cointoss1973 – Programming Language ? C, C++, Python – OS ? VxWorks – HP-UX, Tru64 UNIX, Solaris, Ubuntu, Windows – Activity ? #47redmine スタッフ ? #scmbc サポータ ? #TokyoMercurial ? #日本鼻メガネの会
  • 3. 告知 ? 8月あたりに TDD+ペアプロ+DVCS を練習 する初心者向け勉強会(仮) #devstart の開催 を計画中です。 – スタッフ募集中!! – 来週の日曜日に大森駅近辺でスタッフで素振 り予定
  • 4. 本日つくるものは… ? こんな困ったことありませんか? – pullしたソースコードがビルドできない! – pullしたソースコードがテストで落ちる ? もちろん、一人でも使えますが複数人での同時開 発する場合にとても有効な構成になります ? JenkinsとMercurialと使って、ビルドやテス トが通ったものだけを中央リポジトリに push構成のつくりかたをご紹介します
  • 5. 検証ビルドの位置づけ 作業 Subversionの場合のコ 検証済みビルド ミット後にJenkinsでビル (今回) ド 編集?マージ 開発者 開発者 コミット(SVN) 開発者 開発者 ビルド 事前に開発者が必ず実施 Jenkinsに任せることも可能 コミット後Jenkinsが実施 テスト 事前に開発者が必ず実施 Jenkinsに任せられる コミット後Jenkinsが実施 せっかくJenkinsがあるのに毎回開発者がビ ルドテストしないといけないの(??ω?`)
  • 7. トッピングと味付け ? 言語 – C++ – コンパイラ(MSBuild) ? Visual Studio 2010 Express ? 内容 – fizzbuzz ? 第1引数で、最大値を指定可能とします
  • 8. 材料 ? ハードウェア – OS : Windows XP SP3 を使います – ご家庭にある使わなくなった古いマシンでOKです – CドライブにWindows 、Dドライブがあるとベターです ? ソフトウェア ? Jenkins 1.473 (最新版) http://jenkins-ci.org/ ? TortoiseHg 2.4.2 (最新版) http://tortoisehg.bitbucket.org/ja/ ? Apache(HTTP Server) 2.2.22 (安定版) – http://httpd.apache.org/download.cgi#apache22 ? Cygwin 1.7.15 (最新版) http://www.cygwin.com/ ? wget を使いたいだけなので代わりのものでもOK。 ? Visual C++ 2010 Express ? Python 2.7.3 ? PuTTY
  • 9. 作り方 ? 4~5人前 1. Windows マシンに Jenkins, TortoiseHg, Apache, Python , VisualStu dioをインストールします 1. Cドライブと、Dドライブがあると理想的 2. Jenkins を起動し、プラグインを入れます 3. MercurialとApacheを連携します 4. Mercurialのhookスクリプトを設定します 5. JenkinsにJOB設定をします
  • 10. Jenkins ? インストール先 – D:Jenkins にインストールしておくと無難 – ビルド結果のファイルをある程度保存しておくと良い ? インストール完了後 – インストール後下記URLで自動でブラウザが開いてエラー画面が出る が慌てない(Jenkinsさんが起動中である) – http://localhost:8080/ ? プラグイン – JenkinsのGUIから下記プラグイン達を導入(簡単) – Mercurial plugin ? polling 設定を忘れずに。pollingの期間は@dailyでOK – 実際のトリガは、Mercurialのtestingリポジトリへのhookで行う – MSBuild plugin ? Visual Studioコンパイルしやすくする。なくても – Warnings plugin ? C/C++のコンパイラの警告集計
  • 11. TortoiseHg ? インストーラをダウンロードして実行す るだけ – お好みで日本語メニューにどうぞ – hg コマンドも同梱されます、PATH環境変数 にも自動で追加されます – ssh用のクライアントも同梱されてるみたい ? インストール先 – C:Program FilesTortoiseHg
  • 12. PuTTY ? sshキー作成用にPuTTYをインストール ? http://www.chiark.greenend.org.uk/~sgtatham/putty/
  • 13. Mercurial ? D:repos にtestingリポジトリをおく ? hg init D:reposfizzbuzz_testing ? .hg/hgrc に下記hookを追加 [hooks] incoming.jenkins = wget -q http://zion:8080/mercurial/notifyCommit?url=http://zion/repos/hgweb.cgi/fizzbuzz_testing/
  • 14. Python ? Pythonはバージョンがくつかあります – Python 2.7.3 とする(TortoiseHgと合わせておく と無難) – C:Python27 ? 環境変数 PATH に”追加” – C:Python27;C:Python27Scripts
  • 16. Apache (httpd.conf) ? httpd.conf # AddHandler allows you to map certain file extensions to "handlers": # actions unrelated to filetype. These can be either built into the server # or added with the Action directive (see below) # # To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.) # AddHandler cgi-script .cgi Alias /repos D:/repos <Directory "D:/repos"> Options +ExecCGI Order allow,deny Allow from all DirectoryIndex hgweb.cgi </Directory>
  • 17. Apache (.config) ? D:repos.config [web] templates = C:/Program Files/TortoiseHg/templates push_ssl = False allow_push = * [paths] / = D:/repos/* ? .config – ドットで始まるファイルは、Windowsではコマンドプロ ンプト上で echo aaa > .config で作ってください(ダサい)
  • 18. Apache (hgweb.cgi) ? D:reposhgweb.cgi [web] templates = C:/Program Files/TortoiseHg/templates push_ssl = False allow_push = * [paths] / = D:/repos/*
  • 19. Apache restart ? apache を Restart
  • 20. Visual Studio 2010 Express ? 普通にダウンロードしてインストール ? 検証ビルドで本当に必要なのはコンパイ ラ(MSBuild.exe)だけなので、.NETフレー ムワークだけインストールでもOK(未確 認) C:WINDOWSMicrosoft.NETFrameworkv4.0.30319MSBuild.exe
  • 21. 実食(実演) ? 実際に開発者のマシン(matrix)から、検証 ビルドサーバ(zion) に push してみます 本日は Oracle Virtual Box上にインストール、 セットアップ済みのマシンWindows XP SP3 を用意してあります (下ごしらえ済み)
  • 22. 食べ方 ? 開発者A ? bitbucketなど中央リポジトリからcloneする ? ソースコード追加?修正?変更など ? コミットする ? ビルドサーバにpushする ? 開発者B おそらく開発者Aが コミットした ? ソースコード修正 changeset ? コミット ? push ( pull して merge してと表示される) ? pull して merge ? push
  • 23. 良い点 ? ビルドサーバ側で、pushされたchangesetの 検証内容を決めることができます。 – まずはビルドだけでOK ? 欲張らない – なお、中央リポジトリにはJenkinsからのみ pushできるようにしておくと確実 ? アレンジ – 開発者側の変更無しで、”アレンジ”可能
  • 24. アレンジ ? 自動テストを実施してテストが通らない コードを通さない ? コードの静的検査が不適合のコードは通 さない ? コミットログにチケット番号が入ってい ない場合(ry ? push –f したマージしていないコード(ry ? 追加されたchangesetをメールで飛ばす チームのポリシーやお好みに応じて、クリーンコードから外れ る良くない変更は事前に防止することができます
  • 25. 注意点 ? 開発者が必ず検証ビルドを通すように環境を 構築する – 直接中央リポジトリにpushさせない ? “検証ビルド”に時間がかかると、継続的イン テグレーションの旨みであるこまめに統合す る機会が少なくなります – 10分以内が理想。15分が限界 ? ビルドマシンを強化する ? コンパイルをインクリメンタルビルドにする
  • 26. 課題 – Mercurialのリポジトリを公開する方法( Apache + Mercurial の連携)はもっとcoolな方法がある と思います。 – http://mercurial.selenic.com/wiki/PublishingRepositories
  • 27. 今日できなかったこと ? SSHの連携 – jenkinsさんから ssh で bitbucket.org に接続すると、 (おそらく)入力待ちで止まってしまうため hg clone ssh://… ができなかった ? 仕方なく https を使うが .hg/hgrc ファイルに平文で password を書くのでセキュリティ的アレ ? ビルドエラー時のrollback – アイデアとしては、ビルド開始時にファイルを作 成しておき、ビルドが正常に完了後、ビルド完了 時にファイルがあったらビルドが失敗したと判断 して rollback する
  • 28. ご清聴ありがとうございます ? JenkinsとMercurial(DVCS)を連携して、ク リーンなリポジトリに保とう ? 自動化大事 ? Windows環境でもめげない – CygwinやMinGW/MSYSなどPOSIX環境を用意 することでなんとかなることも多い