2014年10月30日 星期四

Jenkins - JIRA - GIT 結合

先於JIRA新增一個user: jenkins,並於專案設定中將此帳號設為Developers的一員。












並於JIRA的設定中將Accept remote API calls設成開啟



新增一個測試issue,下圖的issue代碼為JT-2






Jenkins須安裝 JIRA Plugin

安裝完之後,在系統設定設定JIRA相關資訊

















專案組態設定中,於Post-Build中新增Update relevant JIRA issues











GIT Commit的時候,開頭填入專案代號,Jenkins就會依此代號更新JIRA issue
 
 








Jenkins建置完成後,就會在該issue中新增一筆comment

Jenkins - 將Workspace底下所有檔案(包括子目錄)複製到網路芳鄰

建置時動作->新增執行Windows批次指令->輸入底下指令
net use x: \\網芳目錄
xcopy * x:\ /e /h /Y
net use x: /delete /Y












指令說明:
net use x: \\網芳目錄  <-- mount="" p="" x="">xcopy * x:\ /e /h /Y  <-- p="" x="" y="" yes="">net use x: /delete /Y <-- p="" unmount="">

2014年10月29日 星期三

Jenkins 發mail給所有建置人員

參考 Jenkins - How to send Email at every build

安裝 Email-ext plugin







在 Manage Jenkins -> Configure System中會多一塊延伸Mail通知設定

















 
在專案設定中的 Post-build中新增一個 Editable Email Notifiction













按下右下角的Advanced Settings按鈕














新增一個Trigger,選擇Always












預設就會發送MAIL給所有Developers

2014年10月24日 星期五

Jenkins 取不到git Repository

Jenkins 取不到git Repository,發生Timeout after 10 minutes的錯誤訊息。



主要是Repository URL設定錯誤,或是Credentials認證錯誤,

我試過使用UserName及Password認證,還是發生一樣的錯誤










後來改採用SSH Private Key認證,就能成功連結到Repository

使用PuTTY KEY Generator產生公鑰及私鑰,
按下Generate後滑鼠亂動以產生隨機密碼



















將Public Key複製後貼到GIT主機的authorized_keys,
若沒有此檔案請自行新增一個。







將私鑰另存之後,丟到CI的主機上,
以下圖為例,是將私鑰存成gitKey.ppk,並放置於C:\SSHKEY底下,
並於CI 專案的Source Code Management中新增憑證,並填入相關資訊












便能於Credentials中選取到此認證




ArtifactDeployer "Can't create the directory" 解決

Jenkins CI編譯完成後,欲將編譯好的檔案複製到另一台主機時,
卻出現"Can't create the directory"的錯誤訊息



原因是因為Jenkins的Service權限不夠,無法將檔案複製到目的地,
只要在服務中,將Jenkins的登入身份指定為有網芳權限的帳號即可解決。


Jenkins+GIT安裝及相關設定2

基本安裝及設定完成之後,開始比較進階的設定吧。

目標是:
1. Git commit之後,Jenkins自動執行編譯
2. Jenkins編譯完成之後,自動將編譯完成的檔案複製到另一台主機上
------------------------------------------------------------------------------------------

首先先新增一個Item


輸入item名稱,選擇第一個專案類型:FreeStyle Project

於Source Code Management,設定Git的Repository URL




並設定認證方式,點擊Credentials右下方的Add,開啟下圖
kind選擇SSH認證,Private Key填入key的檔案路徑,
新增完成之後,便能於上圖Credentials的下拉選項選取它。



設定item執行的觸發條件,Poll SCM為輪巡,
會在固定時間檢查git上有沒有新版本,有新版本才執行編譯,
H * * * * *,表示每個小時檢查一次




接著設定編譯完成後,將檔案搬移至另一台主機,
於Post-Build按下Add post-build action按鈕選取ArtifactDeployer (先於Manage Plugins新增該Plugin)



Remote File Location設定欲搬移的路徑,
此路經需先設定好共享。



Post-build Actions中可設定此item完成後可執行的動作,
例如mail通知:


設定完成!!

2014年10月23日 星期四

Jenkins+GIT安裝及相關設定1

下載安裝程式: Jenkins官網  Git官網

安裝 (全部依照預設值安裝) 

沒意外了話,網址列輸入: http://127.0.0.1:8080 就能開啟Jenkins的管理網頁













開始設定相關設定

點擊Manage Jenkins


















點擊Configure System










GIT Path to Git executable輸入C:\Program Files (x86)\Git\cmd\git.exe (GIT的安裝路徑)
 (若沒有此選項,請於Manage Plugins中安裝Git Plugin)







MSBuild Name 輸入:MS Build 4.0
Path to MSBuild 輸入:C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
(記得先安裝.net 4 或 .net 4.5)
(出現的三角形警告不須理會它)
(若沒有此選項,請於Manage Plugins中安裝MSBuild Plugin)








修改IP位置,及輸入ADMIN的Email





設定stmp,以下是Gmail的設定









設定完成!!