• Like
窓辺に立つ執事
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

窓辺に立つ執事

  • 1,077 views
Uploaded on

第6回大阪Jenkins勉強会での発表資料です。

第6回大阪Jenkins勉強会での発表資料です。

More in: Engineering
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,077
On Slideshare
0
From Embeds
0
Number of Embeds
9

Actions

Shares
Downloads
5
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. お前だれよ? •Posauneです。 •@Posauneです。 •前川です。 2013/11/19(火) 第6回大阪Jenkins勉強会 1
  • 2. 何してんの? •プログラマです。 •興味ある分野 •C#、F#、Poweshell,関数型言語軍、 Ruby/Python •データサイエンス(R・統計) •UX、Lean、Agile •テスト・品質保証 •自動化効率化 <-節操ない系 2013/11/19(火) 第6回大阪Jenkins勉強会 2
  • 3. ...何してんの? •京都アジャイル勉強会 •統計学勉強会@devLove関西 •Visual Studio勉強会 •TABOK勉強会 ー> 検証コレクション •これでもだいぶ減ってる 2013/11/19(火) 第6回大阪Jenkins勉強会 3
  • 4. あ、そうそう •Microsoft MVP for VisualStudio ALM を 受賞しました 2013/11/19(火) 第6回大阪Jenkins勉強会 4
  • 5. というわけで… •Visual Studio + Test Management + TFS 、すごいです。 •1プラットフォームで要求管理 から設計、コーディング、テストと 一気通貫できる環境は早々無いです。 •TFS User Groupもよろしく! •多分イベントやるよ 2013/11/19(火) 第6回大阪Jenkins勉強会 5
  • 6. さて、Jenkinsの話をします
  • 7. 窓辺に立つJenkins @Posaune
  • 8. 話す内容 •WindowsでJenkinsを使う時に、 「僕が」考えていること •実際に使っているものも、これから使え そうだと思っているものも紹介します。 2013/11/19(火) 第6回大阪Jenkins勉強会 8
  • 9. 前提条件 •Windowsの「デスクトップアプリ」を主 なターゲットにしています •開発・ビルド環境ともにWindowsを想定 •開発言語は.NET系を一応前提 2013/11/19(火) 第6回大阪Jenkins勉強会 9
  • 10. ① Jenkins 窓辺に立つ •普通にインストールすればOK •Chocolatey使ってもいいかもね •基本は勝手にサービス登録してくれるけ ど、コマンド叩く手法も覚えておいたほ うがいい 2013/11/19(火) 第6回大阪Jenkins勉強会 10
  • 11. そうそう、Chocolatey •Windows版apt-get •Nugetの仕組みを使ってアプリの インストールを行っている •割りと落ちてるパッケージが多かったり するけど、注目しとくべき 2013/11/19(火) 第6回大阪Jenkins勉強会 12
  • 12. ② Jenkins 窓を磨く •ビルドはMS BuildでOK •プラグインもあるよ •導入の障壁は超低い。楽ちん。 2013/11/19(火) 第6回大阪Jenkins勉強会 13
  • 13. ③ Jenkins 窓を検査する •ビルドだけやるのは勿体無い。 テストしようテスト。 •各種プラグインあります。 •MSTest / VSTest •NUnit •Gallio 2013/11/19(火) 第6回大阪Jenkins勉強会 14
  • 14. Gallio •マルチなテスト環境を統合する テストランナー •MSTest、NUnitほか、xUnit.net、 MbUnitなんでもござれ •コードカバレッジ取得までセットになっ てる何気にすごい子 2013/11/19(火) 第6回大阪Jenkins勉強会 15
  • 15. ④ Jenkins 窓の埃を 気にする •コードカバレッジ取りましょう! •有償:NCover • Jenkinsプラグインあり •無償:OpenCover • Jenkinsプラグインなし 2013/11/19(火) 第6回大阪Jenkins勉強会 16
  • 16. ⑤ Jenkins 窓にコードを 書き始める •OpenCoverはじめ、対応できない ツールは結構ある •バッチ実行プラグインは標準で ついてくる、んだけど・・・ •テストの追加に追従させたい •OpenCoverの結果を加工して表示したい •バージョン番号はビルド番号を自動で… 2013/11/19(火) 第6回大阪Jenkins勉強会 17
  • 17. 「そんなShellで大丈夫か?」 「一番いいのを頼む。」
  • 18. PowerShellプラグイン •Powershellでかけます。 •それだけです。それだけだけど、超便利 です。 •ちなみにSetExecutionPolicyの変更は事 前に必要です。 •解決策あるのでプルリクしてみようかな… 2013/11/19(火) 第6回大阪Jenkins勉強会 19
  • 19. ⑥ Jenkins 窓をもっと 検査する •静的解析ツールも何気に充実しています •FxCop(コーディング規約) •CCM(サイクロマチック複雑度) •Violation(警告数) •Visual Studio Code Metrics(各種コードメ トリクス) 2013/11/19(火) 第6回大阪Jenkins勉強会 20
  • 20. とはいえ •Jenkinsだと設定が割と大変 •そもそも対応してないからPowershell 叩くパターンも結構ある •各種メトリックスが好き勝手に 結果を表示するのでカオス 2013/11/19(火) 第6回大阪Jenkins勉強会 21
  • 21. あー、どこかに .NETに対応した フリー(できればOSS)の Jenkinsとも連携できる 静的解析ツールはないかなー・・・
  • 22. ⑦ Jenkins 人を雇う •静的解析はそれ専門のツール、 SonarQubeにお任せしましょう •マルチ言語対応。 JavaがベースだけどC#プラグインも豊富 •Jenkinsから解析をキック可能 •テストカバレッジを蓄積(単体テストの代替 可) •サイクロマチック複雑度 •FxCop / StyleCop / Gandarme の結果を統 合 •なにより、見やすい 2013/11/19(火) 第6回大阪Jenkins勉強会 23
  • 23. 詳しくはBlogで! •http://posaune.hatenablog.com/entry /2013/12/04/083834 •http://posaune.hatenablog.com/entry /2013/12/04/083834 2013/11/19(火) 第6回大阪Jenkins勉強会 24
  • 24. まとめ •Window上でもJenkinsは色々できる •自動ビルド •自動テスト •静的解析・カバレッジ取得 •JenkinsをWindows開発に活かして プロジェクトを元気にしましょう! •もちろんVS TFSも検討してね! 2013/11/19(火) 第6回大阪Jenkins勉強会 25
  • 25. で、終わると思った??
  • 26. デプロイメントパイプライン とはなんだったのか 2013/11/19(火) 第6回大阪Jenkins勉強会 27
  • 27. デプロイメントパイプライン とはなんだったのか 2013/11/19(火) 第6回大阪Jenkins勉強会 28
  • 28. ⑦ Jenkins 窓を検収する •Windowsで受け入れテスト ー> Exeを叩いて実行 •Friendly or White の二択 •Friendly: 超強力、ただしまだ情報少な目 •White: UI Automationラッパーなのででき ないこともある。情報は多い。 •どうせならSpecFlow使ってみる? 2013/11/19(火) 第6回大阪Jenkins勉強会 29
  • 29. White + SpecFlowの例 2013/11/19(火) 第6回大阪Jenkins勉強会 30
  • 30. よし!Jenkinsで テストだ! 2013/11/19(火) 第6回大阪Jenkins勉強会 31
  • 31. _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y ̄
  • 32. UIテストの罠 •Jenkinsをサービス起動しているとUIテ ストで失敗する •“java -jar Jenkins.war“で起動するとOK •Windowsのユーザー空間を使いはじめると こっちじゃないと辛くなる 2013/11/19(火) 第6回大阪Jenkins勉強会 34
  • 33. ⑧ Jenkins 窓を飛び移る •Windows アプリケーションにとっての デプロイ = インストール •よし!インストールだ! •試しに自分のマシンでやってみるか・・・ 2013/11/19(火) 第6回大阪Jenkins勉強会 35
  • 34. _人人人人人人_ > 突然のUAC <  ̄Y^Y^Y^Y^Y ̄
  • 35. UACを超えられるか? •超泥臭くやるなら… •リモートデスクトップでつないで •画像認識自動化ツールSikuliで操作 •外部操作にこだわらないなら・・ •タスクスケジューラに登録して実行 •登録したのを外から叩くてはある 2013/11/19(火) 第6回大阪Jenkins勉強会 37
  • 36. あー、どこかに 追加ライブラリなしで UACを回避して リモート経由で実行できる SSH on Unixみたいなツールはないかな ー・・・
  • 37. PsExec from PsTools •リモートPC上で任意のスクリプトを動か すためのライブラリ •デフォルトではUACを止める。 •…が、いくつかレジストリを操作するこ とで… 2013/11/19(火) 第6回大阪Jenkins勉強会 39
  • 38. Demo:PsExec 2013/11/19(火) 第6回大阪Jenkins勉強会 40
  • 39. Demo:合鍵を手に入れた Jenkins 2013/11/19(火) 第6回大阪Jenkins勉強会 41
  • 40. 詳しくはBlogで! •http://posaune.hatenablog.com/entry /2014/02/25/002408 2013/11/19(火) 第6回大阪Jenkins勉強会 42
  • 41. デプロイメントパイプライ ン(案) - White + SpecFlow - Jenkinsは java -jar 起動 - PsExec PsExecで 送り込んで 実行しちゃえ 2013/11/19(火) 第6回大阪Jenkins勉強会 43
  • 42. ⑩ Jenkinsがいっぱい •依存ライブラリは別の執事が ビルドしている •他所の執事の特定バージョンの ビルドを使いたい •よーし、dllをリポジトリに追加だ! •git add “hogehoge.dll” 2013/11/19(火) 第6回大阪Jenkins勉強会 44
  • 43. 人_ > git add “hogehoge.dll" <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ^Y^Y^Y ̄ 2013/11/19(火) 第6回大阪Jenkins勉強会 45
  • 44. リポジトリにバイナリを入 れるな!! •「あー、dllのバージョン上げ忘れちゃっ た(・ω <)」 •「DllNotFoundExceptionってなんですか ー?全部ファイルは揃ってるんですけど …」 •「subversionのチェックアウトで一日終 わってしまったorz」 2013/11/19(火) 第6回大阪Jenkins勉強会 46
  • 45. ここにNuget Server を建てよう •dllコミットが許されるのはVS2008まで だよねー •2010で、nuget使えます •設定XMLだけで自動でライブラリダウンロー ド •依存ライブラリも自動で取ってくる •厳密にバージョン指定可能 •ローカルにNugetサーバも建てられる 2013/11/19(火) 第6回大阪Jenkins勉強会 47
  • 46. デプロイメントパイプライ ン(案) 2013/11/19(火) 第6回大阪Jenkins勉強会 48
  • 47. 喋ってないこと •ソースコード管理 •Gitがいいなぁ。 •インストーラ作成 •今どきWixですよね。 2013/11/19(火) 第6回大阪Jenkins勉強会 49
  • 48. まとめ(ない) •Windowsでのデプロイメント パイプライン道は険しい •ゴールをはっきり持たないと、 心が折れる •どこまでやるかも含めて、ゴール設定 必要 •手札を揃えておけば、まぁ何とかなる 2013/11/19(火) 第6回大阪Jenkins勉強会 50
  • 49. お手本 2013/11/19(火) 第6回大阪Jenkins勉強会 51
  • 50. みんなも手札を揃えよう!!