Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Jenkins使ってみた~Windows編~

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Chargement dans…3
×

Consultez-les par la suite

1 sur 34 Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Similaire à Jenkins使ってみた~Windows編~ (20)

Publicité

Plus par Yuta Matsumura (20)

Plus récents (17)

Publicité

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. ありがとうございました。

×