ろむめもスマートフォン用の表示で見るろむめも気になったこととか、調べたことをゆるくまとめます。プログラミング関連の話題が多いです。この広告は、90日以上更新していないブログに表示しています。2015-01-24WindowsローカルレポジトリにJenkinsを活用した話(Windows+svn)CI背景プライベートプロジェクトにJenkins氏を導入しました。一人でやっている遊びプロジェクトですが、所謂TDDやってみたいなとか、メトリクスとかプロジェクトの進捗を可視化したいなと思いました。可視化すればプライベートプロジェクトで最も重要な「モチベーション」の維持ができるかもしれないという淡い期待も込めて、Jenkins氏にメンターになって頂きたいという思いから、導入してみました。homejenkins:1.596構成管理:svn(レポジトリはローカルに配置)概要ざっくり構想はこんな感じにしました。1ユーザーがソースコードをコミットする(Development/Commit)2コミットをJenkinsに通知する(Hook)3Jenkins働く(CheckOut/Build/Test/...)4問題があればユーザーに通知する(Notice)こうした理由は簡単で、業務用なら別ですけど、自宅のPCは必要なときしか電源入れないからです。他の構想としては例えばJenkins氏に深夜こっそり働いてもらう、定期的にレポジトリを見に行ってもらって変更があればビルドしてもらう、定期的にビルドしてもらうというような方法があると思います。自宅のPCは使うときにしか電源を入れないので、現実的にちゃんとライフサイクル回すにはこのフローが最適だと考えました。導入まずはJenkins氏のインストール。以下からインストーラを入手しました。Package」というところのwindowsをクリックする。svnはTortiseSVNを使っていたので、それをそのまま使いました。Homesvnのレポジトリ作成とかそのへんは割愛します。次にJenkins氏にsvnのレポジトリからcheckoutしてもらうための設定をおこないました。1新規ジョブ作成インストール時に特に操作してなければ、次のURLにアクセスすることで、Jenkins氏を確認できます。ポート番号は8080がデフォルトですが、任意の値に変更できます。http://localhost:<ポート番号>そして、左側にある「新規ジョブ作成」をクリックし、次の画面で「フリースタイル・プロジェクトのビルド」を選択してジョブ名を入力したところでOKをクリックするとトップページに新しいジョブが追加されます。Jenkins氏はこのジョブ単位で管理してくれます。2ジョブの設定をするトップページに戻って、先ほど作成したジョブ名をクリック次の画面の左側の設定をクリックここで以下の設定を行います。Files下)ではJenkinsにアクセス権を設定しなければならないので、他の場所に移したほうがよかったです。Jenkinsはこのワークスペースを使ってsvnのチェックアウトやビルドを行います。この時レポジトリの位置がローカルにある場合は、「file:///C:/Users/workspace/*****」というような書き方をします。Jenkinsの不具合なのかなんなのか、赤字でアクセスできないと表示されるんですが、無視して設定を保存するとちゃんとアクセスできました。それ以外の設定は変更しませんでした。チェックアウト方式はお好みで。・動作確認ここまでの設定を保存し、左側メニューにある「ビルド実行」をクリックすると、問題がなければJenkins氏がsvnから最新のリビジョンをチェックアウトしてくれるはずです。結果は「ビルド実行状態」から確認してください。環境のデバックにはコンソール出力を活用するのが良いと思います。コンソール出力は実行中ジョブの日時をクリックして、次のページでConsoleOutputをクリックすると出力されます。チェックアウト後に、上図の「Build/Test」のようにテストコードの実行や各種解析をJenkinsにさせたければ、「ビルド手順の追加」をクリックし、例えば「windowsバッチコマンドの実行」等を選択してバッチコマンドを記述することができます。ここまでで上の図のCheckoutとBuild/Testができるようになります。次に上の図の「Hook」を導入します。イメージとしてはUserがCommitした時にsubversionに働いてもらって、jenkinsにCommitを通知するという流れです。そのため、svnのレポジトリのスクリプトをいじります。レポジトリの中に「hooks」というフォルダがあるのでそこにhookスクリプト(tmplファイル)があります。コミット前なら「pre-commit」、コミット後なら「post-commit」みたいなファイル名のようです。自分で好きな名前をつけても良いです。windowsの場合、拡張子をbatに変更する必要があります。私は名前をデフォルトのまま、post-commit.batを用意しました。そこに次のようにしました。%JENKINSSERVER%/job/%JOBNAME%/build?delay=0sec書いていて思い出しましたが、上のバッチの利用にはwgetのインストールが必要です。以下を参考にインストールしました。wgetをインストールしよう:アシマネのドタバタ奮闘日記:So-netブログbatファイルでは、Jenkins氏にwgetコマンド経由でビルド実行をお願いしています。http://localhost:<ポート番号>/job/<job名>/build?delay=0secにアクセスすると働いてくれる(jenkins上のビルド実行クリックと同じ動作)ので、これをwgetで呼んでいます。最後にTortiseSVNの設定をします。どこでもいいのでエクスプローラ上で右クリック。svnのメニューから設定を選択。左側の設定メニューの中から「HookScript」をクリック。ワーキングコピーと、先ほど作ったbatファイルの位置を設定。以上の設定が正しくされれば、コミットをきっかけにJenkinsが働いてくれるはずです。長くなったのでnoticeはいずれ書きます。以下で変更できるようです。»プロフィールid:romth気になったこととか、調べたことをゆるくまとめます。プログラミング関連の話題が多いです。月別アーカイブはてなブログをはじめよう!romthさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。