Jenkins:設定一次後就很方便的排程工具

Jenkins是一款强大的自动化工具,具备定时排程功能,可与Git、Unity、CIFS和SVN集成。通过Jenkins,可以实现定期自动编译、更新代码、复制文件到网络位置以及备份SVN档案,极大地提高了工作效率,减轻了程序员的工作负担,并方便非程序员获取最新版本的项目。

Jenkins擁有定時排程功能

Jenlins可以結合GIt,達到維持本機端程式碼為最新版本

Jenkins可以結合Unity,達到定期自動編譯版本的功能

Jenkins可以結合CIFS(網路芳鄰),達到自動複製檔案至網芳的目的

Jenkins可以結合SVN,達到更新本機端資料為最新版本


所以當專案使用了Jenkins可以達到幾個目的

1.可以在每周的某個固定時間點,自動產當前的最新版本給QA做測試,可以省去占用程式協助產檔的時間

2.當非程式人員臨時需要取得當前最新版本的時候,可以自行啟動Jenkins的自動編譯版本的功能取得最新版本,完全不需要程式人員的協助

3.可以在每月的某個固定時間點,自動備份SVN檔案至區網上的網路硬碟內


P.S.Jenkins不同的版本可能會有不少差距,以下說明為1.651.1的版本


一.安裝
Jenkins官網
https://jenkins.io/
下載Window版本
安裝Jenkins
開啟瀏覽器
輸入網址 → http://localhost:8080/


二.插件安裝
[管理Jenkins] → [管理外掛程式] → <可用的> → 選擇要安裝的插件 
	"Unity 3d plugin"
	"GitLab Plugin"
安裝完後重啟Jenkins → 在瀏覽器輸入 "http://localhost:8080/restart"


三.設定權限 / 新增成員
[管理Jenkins] → [設定全域安全性] → 
	"啟用安全性"
	=存取控制= → 
		=安全性領域= → "Jenkins內件使用者資料庫" → "允許使用者註冊"
		=授權= → "矩陣型安全性"
			新增使用者 → 設定使用者權限
			EX : 新增 admin → 權限全開
              	  EX : 新增 guest → 整體Read、作業Build、作業Cancel、作業Read
			(建議建立三個帳號 : 1.有全部的權限  2.有Read、Update、Build的權限(沒有刪除權限)  3.只有Read、Build的權限
			(注意!!!
			 新增使用者ID要全部都小寫
			 但是在註冊時ID可以使用大寫)
			 Jenkins在restart之後使用者ID會自動改成全部小寫
			 應該是bug...)
帳號權限開好之後 → "套用" → "儲存"
[登出](在界面的右上角)
[註冊] → 把剛剛開好的帳號ID全部註冊過
(要註冊過才會產生帳號
之前設定權限只是給這個ID權限
使用者名稱要完全對應使用者ID
大小寫可以不同)
全部帳號註冊完成後 → 登入確認權限跟設定有沒有問題後
[管理Jenkins] → [設定全域安全性] → 
	=存取控制= →
		=安全性領域= → "Jenkins內件使用者資料庫" → 取消"允許使用者註冊"


五.與Git連動
[管理Jenkins] → [設定系統] → =Git= → =Git installaions= → "Add Git" → "JGit"
"套用" → "儲存"
[新增作業] → "作業名稱" → 名字隨便取
	"建置Free-Style 軟體專案"
	"OK" → 會自動跳到"組態"設定裡面
原本進入的方式 : <作業名稱> → [組態]
	=進階專案選項= → =進階...= → "使用自訂工作區" → 設定從Git上下載下來的檔案要存在哪個"目錄"下
	=原始碼管理= → "Git" →
		=Repositories= →
			=Repository URL= → 設定Git的Http網址
			=Credentials= → "Add" → 加入可以登入Git的帳號密碼
		=Branches to build= → =Branch Specifier (blank for 'any')= → $gitlabSourceBranch (參數意思是對git上所有的branch做自動更新)
		=Branches to build= → =Branch Specifier (blank for 'any')= → origin/master (參數意思是對git上的指定的branch做自動更新)
		=Additional Behaviours= → "Check out to specific local branch"
			=Branch name= → "master" (填入要check out的branch name)
	=建置處發程序= → "Build when a change is pushed to GitLab. GitLab CI Service ..."
		細部選項自行調整
"套用" → "儲存"
之後Git上面有動作的話就會自動pull到設定好的自訂的工作區
(新增的Git帳號可以到"Credentials"裡面進行管理
 第一進入的時候所有的帳號會存放在 <Domain> → "Global credentials(unrestriced)" 裡面)
登入GitLab的網頁 → 進入專案 → [Settings] → <Web Hooks> → 
	=URL= → 輸入Jenkins的路徑  EX : http://127.0.0.1:8080/project/UpdateGit
	=Trigger= → "Push events"
	"Add Web Hook"



六.與Unity Script連動
[管理Jenkins] → [設定系統] → =Unity3d= → "Unity3d安裝..."
	"名稱" → 建議輸入要使用的Unity版本號
	"安裝目錄" → 選擇Unity安裝的目錄
"套用" → "儲存"
[新增作業] → "作業名稱" → 名字隨便取
	"建置Free-Style 軟體專案"
	"OK" → 會自動跳到"組態"設定裡面
原本進入的方式 : <作業名稱> → [組態]
	"參數化建置" → "新增參數" → 可以增加build時所需要的參數(EX : 版本類型、版本號)
	=建置= → "新增建置步驟" → "Invoke Unity3D Editor"
		"Unity3d installation name" → 選擇剛剛設定Unity的"名稱"
		"Editor command line arguments" → 輸入Unity的命令參數
		EX : -quit -batchmode -logFile D:\UnityProject\CodeReset\Jenkins.log -projectPath D:\UnityProject\CodeReset -executeMethod ProjectExport.buildEXE "$VersionCode" "$VersionType"
		(logFile : 必須要指定一個log檔產生的路徑  最新一次執行的log會存在這個檔案裡面
		 projectPath : 專案的路徑
		 executeMethod : 呼叫專案裡哪個Script的哪個Function
		 $VersionCode : 將剛剛"參數化建置"的"新增參數"傳到Unity裡面
		 Unity內取參數的方式 : string[] commandLines = Environment.GetCommandLineArgs();)
"套用" → "儲存"
[建置]
(注意!!!
 第一次建置前要先設定環境變數並restart過Jenkins
 請參考http://codingtrabla.blogspot.tw/2016/03/jenkins-unity3d-plugin-unable-to-locate.html)


七.定時建置
<作業裡面> → [組態] → =建置觸發程序= → "定期建置" → "排程" -> EX : 0 0 * * *


六.建置後的通知
<作業裡面> → [組態] → =建置後動作= → "新增建置後動作" → "電子郵件通知" → "收件人" → 填入email  複數信箱可以用空白隔開


七.其他設定
[管理Jenkins] → [設定系統] → "Jenkins URL" → 預設是http://localhost:8080/  可以改成真正的IP位址


八.其他參考資料

帳號權限
http://www.cnblogs.com/zz0412/p/jenkins_jj_14.html

設定每日建置
https://dotblogs.com.tw/kirkchen/2012/05/14/install_and_setting_jenkins_as_ci_server
http://ithelp.ithome.com.tw/question/10104449
https://dotblogs.com.tw/chhuang/2013/09/04/116308

GitLab
https://segmentfault.com/a/1190000003975766



九.更新SVN
<作業裡面> → [組態] → =原始碼管理= → "Subversion"
	=模組=
		"儲存庫URL" → 填入SVN的位址
			"驗證帳號密碼" → 輸入SVN的帳號密碼
		"Repository depth" → "infinity"
	"Check-Out策略" → "總是Check Out一份新的"

十.複製檔案到windows的網路硬碟
[管理Jenkins] → [設定系統] → =Publish over CIFS= → =CIFS Shares=
	"Name" → 網路硬碟路徑跟帳號一組的代號
	"Hostname" → IP
	"Username"→ 帳號
	"Password" → 密碼
	"Share" → 網路硬碟上要進行作業的資料夾路徑

<作業裡面> → [組態] → =建置= → "新增建置步驟" → =Send files to a windows share= → =CIFS Publishers= → =CIFS Share=
	"Name" → 網路硬碟設定的代號
	=Transfers= → =Transfer Set=
		"Source files" → **
		"Remote directory" → 網路硬碟上是否要建立資料夾名稱
		"Remote directory is a date format" → 在網路硬碟件立資料夾名稱是否使用時間格式




Jenl

ins可以結合GIt,達到保持本機端為最新版本的目的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值