Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Jenkins使ってみた
~Windows編~
@tsubakimoto_s
自己紹介
• 松村 優大 (Yuta Matsumura)
• 医療系システムの開発・導入をしています。主に C#。
• 切磋琢磨できる人たちと仲良くなりたい。
• MLB大好きです。Vagrantも好き。
• Twitter : @tsuba...
私と Jenkins
• 私はほとんど Jenkins のことを知りません。
• 社内の C# 開発プロジェクトに導入するために
Jenkins を勉強しています。
• この勉強会の内容も丸パクリ参考にします。
• チーム開発に役立つプラグイン...
自動化したいこと
• ソリューションのビルド。
• リポジトリに変更があった際に、ソリューション全体が正しくビルド
できるかどうかの確認をします。
• プログラムの単体テスト。
• リポジトリに変更があった際に、単体テストを実施し、デグレが発生...
自動化したいこと
• ソリューションのビルド。
• リポジトリに変更があった際に、ソリューション全体が正しくビルド
できるかどうかの確認をします。
• プログラムの単体テスト。
• リポジトリに変更があった際に、単体テストを実施し、デグレが発生...
ビルドを手動で実行する
MSBuild プラグイン
• .NET プロジェクトの自動ビルドを行い、ビルド結果や
エラー情報が保存されます。
• MSBuild.exe を使います。
• https://wiki.jenkins-
ci.org/display/JENK...
MSBuild.exe って?
• ビルドエンジンです。
• .NET Framework のインストールに付随します。
• サーバに Visual Studio をインストールしなくてもビル
ドができます。
MSBuild プラグイン
MSBuild.exe
MSBuild プラグイン
自動化したいこと
• ソリューションのビルド。
• リポジトリに変更があった際に、ソリューション全体が正しくビルド
できるかどうかの確認をします。
• プログラムの単体テスト。
• リポジトリに変更があった際に、単体テストを実施し、デグレが発生...
単体テストを手動で実行する
MSTestRunner プラグイン
• Visual Studio 標準の単体テスト (通称 MSTest) を自動実
行します。
• MSTest.exe を使います。
• https://wiki.jenkins-
ci.org/disp...
MSTest.exe って?
• テストを実行するために使用されるコマンドライン
アプリケーションです。
• Visual Studio (Express以外) が必要になります。
• テスト結果をファイル出力 (XML) できます。
MSTestRunner プラグイン
単体テストを手動で実行する (NUnit 編)
NUnit って?
• .NET 向けのテスティングフレームワークです。
• MSTest が使えない Visual Studio で単体テストを行える。
• NuGet (パッケージマネージャ) 経由で、簡単にプロ
ジェクトに追加できる。
NUnit プラグイン
• NUnit を使った単体テストの件数や結果を保存、グラフ
化します。
• 自動テストではないため、ビルド成功時に単体テスト
を実行するよう、ソリューションまたは Jenkins に組み
込むことが必要です。
• ht...
NUnit プラグイン
• 成功件数と失敗件数の遷移が分かる。
NUnit プラグイン
• 失敗時のスタックトレースも分かる。
VsTestRunner プラグイン
• 発表前日になって見つけました。
• Visual Studio に付随する vstest.console.exe を使って単
体テストを行うようです。
• 単体テストに関する設定を GUI で選べるため...
VsTestRunner プラグイン
感想
• 単体テスト自体は、Visual Studio 標準 (MSTest) で十分
な機能を有していると思います。
• Jenkins 上のテスト結果が分かりやすい NUnit も捨てが
たい。Visual Studio Express な...
5月から社内プロジェクトに試験導入しました
• Windows Server 2012 R2
• Apache
• Subversion
• Jenkins (MSBuild, MSTestRunner)
流れは?
Commit
.bat,.vbs
• MSBuild
• MSTestRunner
• フックスクリプト
作動
.bat と .vbs
SET CSCRIPT=%windir%¥system32¥cscript.exe
SET VBSCRIPT=C:¥path¥to¥post-commit.vbs
SET JENKINS=http://<Jenkinsの...
今回の検証環境
• Windows × Jenkins の環境は Vagrant で作りました。
• Windows Server 2012 評価版を利用。180日間使えます。
• Box の作り方はこちらを参考に。
• http://tech...
Vagrant 1.6 の新機能
• vagrant-windows プラグインの機能が標準搭載。
• http://www.vagrantup.com/blog/vagrant-1-6.html
• vagrant rdp コマンドで仮想マシ...
Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "windows2...
Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "windows2...
Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "windows2...
Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "windows2...
Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "windows2...
ありがとうございました。
Próxima SlideShare
Cargando en…5
×

Jenkins使ってみた~Windows編~

8.074 visualizaciones

Publicado el

仮想開発環境とか勉強会 (http://www.zusaar.com/event/5417007) での発表資料です。

Publicado en: Medio ambiente
  • Sé el primero en comentar

Jenkins使ってみた~Windows編~

  1. 1. Jenkins使ってみた ~Windows編~ @tsubakimoto_s
  2. 2. 自己紹介 • 松村 優大 (Yuta Matsumura) • 医療系システムの開発・導入をしています。主に C#。 • 切磋琢磨できる人たちと仲良くなりたい。 • MLB大好きです。Vagrantも好き。 • Twitter : @tsubakimoto_s • 島根県出身です。
  3. 3. 私と Jenkins • 私はほとんど Jenkins のことを知りません。 • 社内の C# 開発プロジェクトに導入するために Jenkins を勉強しています。 • この勉強会の内容も丸パクリ参考にします。 • チーム開発に役立つプラグイン教えて下さい ><
  4. 4. 自動化したいこと • ソリューションのビルド。 • リポジトリに変更があった際に、ソリューション全体が正しくビルド できるかどうかの確認をします。 • プログラムの単体テスト。 • リポジトリに変更があった際に、単体テストを実施し、デグレが発生 していないことの確認をします。
  5. 5. 自動化したいこと • ソリューションのビルド。 • リポジトリに変更があった際に、ソリューション全体が正しくビルド できるかどうかの確認をします。 • プログラムの単体テスト。 • リポジトリに変更があった際に、単体テストを実施し、デグレが発生 していないことの確認をします。
  6. 6. ビルドを手動で実行する
  7. 7. MSBuild プラグイン • .NET プロジェクトの自動ビルドを行い、ビルド結果や エラー情報が保存されます。 • MSBuild.exe を使います。 • https://wiki.jenkins- ci.org/display/JENKINS/MSBuild+Plugin
  8. 8. MSBuild.exe って? • ビルドエンジンです。 • .NET Framework のインストールに付随します。 • サーバに Visual Studio をインストールしなくてもビル ドができます。
  9. 9. MSBuild プラグイン MSBuild.exe
  10. 10. MSBuild プラグイン
  11. 11. 自動化したいこと • ソリューションのビルド。 • リポジトリに変更があった際に、ソリューション全体が正しくビルド できるかどうかの確認をします。 • プログラムの単体テスト。 • リポジトリに変更があった際に、単体テストを実施し、デグレが発生 していないことの確認をします。
  12. 12. 単体テストを手動で実行する
  13. 13. MSTestRunner プラグイン • Visual Studio 標準の単体テスト (通称 MSTest) を自動実 行します。 • MSTest.exe を使います。 • https://wiki.jenkins- ci.org/display/JENKINS/MSTestRunner+Plugin
  14. 14. MSTest.exe って? • テストを実行するために使用されるコマンドライン アプリケーションです。 • Visual Studio (Express以外) が必要になります。 • テスト結果をファイル出力 (XML) できます。
  15. 15. MSTestRunner プラグイン
  16. 16. 単体テストを手動で実行する (NUnit 編)
  17. 17. NUnit って? • .NET 向けのテスティングフレームワークです。 • MSTest が使えない Visual Studio で単体テストを行える。 • NuGet (パッケージマネージャ) 経由で、簡単にプロ ジェクトに追加できる。
  18. 18. NUnit プラグイン • NUnit を使った単体テストの件数や結果を保存、グラフ 化します。 • 自動テストではないため、ビルド成功時に単体テスト を実行するよう、ソリューションまたは Jenkins に組み 込むことが必要です。 • http://wiki.jenkins-ci.org/display/JENKINS/NUnit+Plugin
  19. 19. NUnit プラグイン • 成功件数と失敗件数の遷移が分かる。
  20. 20. NUnit プラグイン • 失敗時のスタックトレースも分かる。
  21. 21. VsTestRunner プラグイン • 発表前日になって見つけました。 • Visual Studio に付随する vstest.console.exe を使って単 体テストを行うようです。 • 単体テストに関する設定を GUI で選べるため、便利そ う。
  22. 22. VsTestRunner プラグイン
  23. 23. 感想 • 単体テスト自体は、Visual Studio 標準 (MSTest) で十分 な機能を有していると思います。 • Jenkins 上のテスト結果が分かりやすい NUnit も捨てが たい。Visual Studio Express なら NUnit 一択です。 • VsTestRunner プラグインが気になって仕方がない。
  24. 24. 5月から社内プロジェクトに試験導入しました • Windows Server 2012 R2 • Apache • Subversion • Jenkins (MSBuild, MSTestRunner)
  25. 25. 流れは? Commit .bat,.vbs • MSBuild • MSTestRunner • フックスクリプト 作動
  26. 26. .bat と .vbs SET CSCRIPT=%windir%¥system32¥cscript.exe SET VBSCRIPT=C:¥path¥to¥post-commit.vbs SET JENKINS=http://<JenkinsのURL>/job/<プロジェクト名>/build "%CSCRIPT%" "%VBSCRIPT%" %JENKINS% url=WScript.Arguments.Item(0) Set http=CreateObject("Microsoft.XMLHTTP") http.open "POST", url, False http.setRequestHeader "Content-Type", "text/plain;charset=UTF-8" http.send "" post-commit.bat post-commit.vbs
  27. 27. 今回の検証環境 • Windows × Jenkins の環境は Vagrant で作りました。 • Windows Server 2012 評価版を利用。180日間使えます。 • Box の作り方はこちらを参考に。 • http://tech.nitoyon.com/ja/blog/2014/02/20/vagrant-win- guest/ • vagrant-windows プラグイン必要。
  28. 28. Vagrant 1.6 の新機能 • vagrant-windows プラグインの機能が標準搭載。 • http://www.vagrantup.com/blog/vagrant-1-6.html • vagrant rdp コマンドで仮想マシンへのリモートデスク トップ接続が可能になりました。 • が、きちんと動いた試しがありません。Boxの作り方に コツがいるのかなぁと。分かる方教えて下さい><
  29. 29. Vagrantfile VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "windows2012r2" config.vm.guest = :windows config.vm.network :forwarded_port, guest: 3389, host: 3389 config.vm.network :forwarded_port, guest: 5985, host: 5985 config.vm.network :forwarded_port, guest: 8080, host: 8080 end
  30. 30. Vagrantfile VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "windows2012r2" config.vm.guest = :windows config.vm.network :forwarded_port, guest: 3389, host: 3389 config.vm.network :forwarded_port, guest: 5985, host: 5985 config.vm.network :forwarded_port, guest: 8080, host: 8080 end [vagrant-windows]プラグインを使うよう指定する。
  31. 31. Vagrantfile VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "windows2012r2" config.vm.guest = :windows config.vm.network :forwarded_port, guest: 3389, host: 3389 config.vm.network :forwarded_port, guest: 5985, host: 5985 config.vm.network :forwarded_port, guest: 8080, host: 8080 end リモートデスクトップのためのポートフォワード設定。
  32. 32. Vagrantfile VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "windows2012r2" config.vm.guest = :windows config.vm.network :forwarded_port, guest: 3389, host: 3389 config.vm.network :forwarded_port, guest: 5985, host: 5985 config.vm.network :forwarded_port, guest: 8080, host: 8080 end Windows リモート管理 (WinRM) のためのポートフォワード設定。
  33. 33. Vagrantfile VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "windows2012r2" config.vm.guest = :windows config.vm.network :forwarded_port, guest: 3389, host: 3389 config.vm.network :forwarded_port, guest: 5985, host: 5985 config.vm.network :forwarded_port, guest: 8080, host: 8080 end Jenkins にアクセスするためのポートフォワード設定。
  34. 34. ありがとうございました。

×