Jenkins/Unity 簡單運(yùn)用(Windows demo)

? ? ? 首先止状,Jenkins官網(wǎng)地址
? ? ? 正常的下載安裝后jenkins會(huì)彈出一個(gè)網(wǎng)頁,可以進(jìn)行注冊(cè)賬號(hào)與初始化攒霹,開始要下載一些插件怯疤,可以讓jenkins自動(dòng)下載。經(jīng)過簡單的初始化設(shè)置之后我們可以進(jìn)入一個(gè)這樣的界面:

jenkins界面

1.授權(quán)其他用戶登錄與權(quán)限控制

在這里可以進(jìn)入用戶全局隱私設(shè)置

權(quán)限設(shè)置入口

訪問控制界面

? ? ? 在這里可以決定是否允許用戶注冊(cè)催束,下面是權(quán)限的授權(quán)策略集峦,途中目前選擇的是登錄的用戶可以做所有事,當(dāng)然也可以使用下面的安全矩陣模式抠刺,該模式通過一個(gè)表來配置哪些用戶可以做哪些事情塔淤。

2.添加節(jié)點(diǎn)(執(zhí)行構(gòu)建的節(jié)點(diǎn),也就是電腦)

? ? ? 當(dāng)有很多功能需要進(jìn)行構(gòu)建的時(shí)候速妖,我們有時(shí)希望讓不同的電腦來執(zhí)行不同的構(gòu)建函數(shù)高蜂,這個(gè)時(shí)候我們就要添加更多的節(jié)點(diǎn)進(jìn)來。
? ? ? 還是在剛才的Manage Jenkins選項(xiàng)中罕容,找到Manage Nodes選項(xiàng)

Manage Nodes

? ? ? 在左側(cè)選項(xiàng)卡中選擇新建節(jié)點(diǎn)后备恤,給節(jié)點(diǎn)起一個(gè)名字集侯,然后選擇Permanent Agent夭委,也可以選擇使用現(xiàn)有的配置(如果之前已經(jīng)創(chuàng)建過節(jié)點(diǎn))生成一個(gè)全新的節(jié)點(diǎn)。


創(chuàng)建節(jié)點(diǎn)名字

? ? ? 寫好名稱赢织,遠(yuǎn)程根目錄和標(biāo)簽生闲。這里的遠(yuǎn)程目錄用于存儲(chǔ)Jenkins客戶端運(yùn)行文件瘫镇。其他設(shè)置默認(rèn)值就可以了汞斧。這個(gè)時(shí)候生成的節(jié)點(diǎn)是未連接狀態(tài)瞪浸,可以用其他的電腦訪問你的Jenkins,經(jīng)過一系列設(shè)置就可以連接上了沉噩。(這一部分因?yàn)橹挥幸慌_(tái)電腦捺宗,而且暫時(shí)沒有使用其他節(jié)點(diǎn)的需求,這里只是做一個(gè)demo讓本地能跑通屁擅,所以這里其實(shí)沒有實(shí)際操作過偿凭,暫時(shí)粘點(diǎn)百度來的流程产弹,如果后面有使用再補(bǔ)上)

3.創(chuàng)造一個(gè)構(gòu)建任務(wù)

? ? ? 首先派歌,在工作臺(tái)中選擇新建一個(gè)任務(wù)


新建任務(wù)

? ? ? 然后我們可以自己創(chuàng)建一個(gè)自由風(fēng)格的工程,在這個(gè)界面痰哨,我們同樣可以選擇一個(gè)已經(jīng)創(chuàng)建好的構(gòu)建任務(wù)進(jìn)行復(fù)制胶果,操作和上面復(fù)制節(jié)點(diǎn)類似(只要輸入構(gòu)建任務(wù)名就可以)。

創(chuàng)建一個(gè)自定義工程
1.我們可以自己定義一些構(gòu)建任務(wù)參數(shù)斤斧,上面指的是構(gòu)建的結(jié)果是否刪除早抠,里面可以自定義最多保存這個(gè)任務(wù)的多少個(gè)構(gòu)建結(jié)果,以及構(gòu)建結(jié)果保存的天數(shù)撬讽。
2.下面的選項(xiàng)可以配置這個(gè)構(gòu)建任務(wù)是否需要參數(shù)蕊连,如果勾選后可以給shell文件傳遞一些參數(shù)過去,也就可以得到不同的構(gòu)建結(jié)果游昼,我們?cè)诤竺娣帕艘粡堖x擇的構(gòu)建參數(shù)界面甘苍。(是否參數(shù)化要看具體的構(gòu)建任務(wù)需求,本項(xiàng)為可選項(xiàng))
配置構(gòu)建任務(wù)參數(shù)

構(gòu)建參數(shù)選擇

然后就是關(guān)鍵的構(gòu)建部分了:

1.添加一個(gè)構(gòu)建步驟:
? ? ? 這里要注意一下烘豌,很多教程寫的是Execute shell载庭,但是這個(gè)是針對(duì)linux平臺(tái)的(或者mac也可以?)廊佩,我用的是Windows平臺(tái)囚聚,使用Execute shell構(gòu)建時(shí)會(huì)報(bào)錯(cuò)找不到文件The system cannot find the file specified
? ? ? Windows平臺(tái)請(qǐng)使用第一個(gè)Execute Windows batch command标锄。
添加構(gòu)建步驟
2.添加一個(gè)測試腳本顽铸,測試腳本代碼很簡單,只有一行echo YES!
添加一個(gè)測試腳本
3.測試料皇!啟動(dòng)谓松!構(gòu)建簸淀!

? ? ? 回到工作臺(tái),點(diǎn)擊右邊的按鈕就可以對(duì)該任務(wù)進(jìn)行構(gòu)建了毒返,構(gòu)建的結(jié)果也會(huì)寫在邊上租幕,可以進(jìn)入對(duì)應(yīng)的構(gòu)建版本號(hào)查看log日志。

構(gòu)建按鈕

構(gòu)建日志

日志詳情

4.使用Jenkins與Unity進(jìn)行交互

? ? ?首先我們需要寫一個(gè)簡單的bat腳本拧簸,使用這個(gè)bat腳本可以調(diào)用unity中的某個(gè)函數(shù)劲绪。Unity有提供對(duì)應(yīng)的API給我們,可以說很貼心了盆赤。Unity API
? ? ?下面是我自己做demo使用的bat代碼贾富,很簡單只有一行。其中各個(gè)代碼含義都可以在API中找到牺六,

-quit 表示執(zhí)行完程序自動(dòng)退出
-batchmode 表示使用批處理模式颤枪,不會(huì)進(jìn)行彈窗,如果過程中出錯(cuò)會(huì)自動(dòng)退出
-projectPath 表示你的工程地址
-logFile 表示unity輸出的log地址
-executeMethod 表示你要執(zhí)行的類名.函數(shù)名(可以傳參淑际,在后面加一個(gè)空格后傳入畏纲,可以在Jenkins中添加參數(shù)化功能,然后傳到這里春缕。這里要注意一下盗胀,這個(gè)腳本要放在Editor文件夾下

? ? ?這里的log沒有指定位置,會(huì)直接生成在Jenkins的工作空間下锄贼,這樣在Jenkins上就可以直接查看輸出的log文件了票灰。
D:/Unity/Editor/Unity.exe -quit -batchmode -projectPath E:/NewUnityProject -logFile build.log  -executeMethod MyEditorScript.MyMethod
? ? ?接下來是測試用C#代碼,也很簡單宅荤,就一句log
using UnityEngine;

class MyEditorScript
{
    static void MyMethod()
    {
        Debug.Log("I am Unity!!!!!!!!");
    }
}
然后就是和上面相同的流程了屑迂,使用Jenkins構(gòu)建,然后可以查看一下生成的log文件~
log結(jié)果
I am Unity!!!!!!! 然后剩下的就是發(fā)揮大家的想象力冯键,使用Jenkins做很多平時(shí)要我們自己浪費(fèi)時(shí)間做的事啦~比如打包呀惹盼,檢查資源呀什么的。

番外.一些動(dòng)手過程中遇到的問題

1.Jenkins位置:

? ? ? 在瀏覽器里面打開http://localhost:8080/ 局域網(wǎng)內(nèi)別人可以打開http://”你的ip”:8080/

2.如何重啟或重新加載Jenkins?

重啟:http://localhost:8080/restart
重新加載配置:http://localhost:8080/reload

3.如何修改Jenkins端口號(hào):

打開安裝目錄下的jenkins.xml文件琼了,修改 <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8081</arguments>

4.關(guān)于Jenkins的環(huán)境變量:

環(huán)境變量可以在Jenkins構(gòu)建函數(shù)編寫的地方查看逻锐,這里只是做一個(gè)復(fù)讀機(jī),整理一下方便以后使用的時(shí)候查看

變量名 說明
BRANCH_NAME For a multibranch project, this will be set to the name of the branch being built, for example in case you wish to deploy to production from master but not from feature branches; if corresponding to some kind of change request, the name is generally arbitrary (refer to CHANGE_ID and CHANGE_TARGET).
CHANGE_ID For a multibranch project corresponding to some kind of change request, this will be set to the change ID, such as a pull request number, if supported; else unset.
CHANGE_URL For a multibranch project corresponding to some kind of change request, this will be set to the change URL, if supported; else unset.
CHANGE_TITLE For a multibranch project corresponding to some kind of change request, this will be set to the title of the change, if supported; else unset.
CHANGE_AUTHOR For a multibranch project corresponding to some kind of change request, this will be set to the username of the author of the proposed change, if supported; else unset.
CHANGE_AUTHOR_DISPLAY_NAME For a multibranch project corresponding to some kind of change request, this will be set to the human name of the author, if supported; else unset.
CHANGE_AUTHOR_EMAIL For a multibranch project corresponding to some kind of change request, this will be set to the email address of the author, if supported; else unset.
CHANGE_TARGET For a multibranch project corresponding to some kind of change request, this will be set to the target or base branch to which the change could be merged, if supported; else unset.
BUILD_NUMBER The current build number, such as "153"
BUILD_ID The current build ID, identical to BUILD_NUMBER for builds created in 1.597+, but a YYYY-MM-DD_hh-mm-ss timestamp for older builds
BUILD_DISPLAY_NAME The display name of the current build, which is something like "#153" by default.
JOB_NAME Name of the project of this build, such as "foo" or "foo/bar".
JOB_BASE_NAME Short Name of the project of this build stripping off folder paths, such as "foo" for "bar/foo".
BUILD_TAG String of "jenkins-{JOB_NAME}-{BUILD_NUMBER}". All forward slashes ("/") in the JOB_NAME are replaced with dashes ("-"). Convenient to put into a resource file, a jar file, etc for easier identification.
EXECUTOR_NUMBER The unique number that identifies the current executor (among executors of the same machine) that’s carrying out this build. This is the number you see in the "build executor status", except that the number starts from 0, not 1.
NODE_NAME Name of the agent if the build is on an agent, or "master" if run on master
NODE_LABELS Whitespace-separated list of labels that the node is assigned.
WORKSPACE The absolute path of the directory assigned to the build as a workspace.
JENKINS_HOME The absolute path of the directory assigned on the master node for Jenkins to store data.
JENKINS_URL Full URL of Jenkins, like http://server:port/jenkins/ (note: only available if Jenkins URL set in system configuration)
BUILD_URL Full URL of this build, like http://server:port/jenkins/job/foo/15/ (Jenkins URL must be set)
JOB_URL Full URL of this job, like http://server:port/jenkins/job/foo/ (Jenkins URL must be set)
? ? ? 后面還有一些關(guān)于git與svn的環(huán)境變量雕薪,這里暫時(shí)用不到就先不搬運(yùn)了昧诱。在構(gòu)建編寫代碼時(shí)如果需要使用環(huán)境變量要使用%把環(huán)境變量包起來,例如:%WORKSPACE%
? ? ? 此外所袁,如果要把構(gòu)建后的網(wǎng)址發(fā)給其他同事的話盏档,記得要把system中的Jenkins URL修改一下哦,不然的話使用環(huán)境變量獲取JENKINS_URL后發(fā)送出去是http:/localhost:8080/燥爷,同事會(huì)訪問自己的8080端口蜈亩,里面肯定是沒有東西的E尘健(如果他本地有程序使用8080端口的話當(dāng)我沒說)
修改URL!

參考文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載稚配,如需轉(zhuǎn)載請(qǐng)通過簡信或評(píng)論聯(lián)系作者畅涂。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市道川,隨后出現(xiàn)的幾起案子午衰,更是在濱河造成了極大的恐慌,老刑警劉巖冒萄,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件臊岸,死亡現(xiàn)場離奇詭異,居然都是意外死亡尊流,警方通過查閱死者的電腦和手機(jī)帅戒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來崖技,“玉大人逻住,你說我怎么就攤上這事∠炀危” “怎么了鄙信?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵瞪醋,是天一觀的道長忿晕。 經(jīng)常有香客問我,道長银受,這世上最難降的妖魔是什么践盼? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮宾巍,結(jié)果婚禮上咕幻,老公的妹妹穿的比我還像新娘。我一直安慰自己顶霞,他們只是感情好肄程,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著选浑,像睡著了一般蓝厌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上古徒,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天拓提,我揣著相機(jī)與錄音,去河邊找鬼隧膘。 笑死代态,一個(gè)胖子當(dāng)著我的面吹牛寺惫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蹦疑,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼西雀,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了歉摧?” 一聲冷哼從身側(cè)響起蒋搜,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎判莉,沒想到半個(gè)月后豆挽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡券盅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年帮哈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锰镀。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡娘侍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出泳炉,到底是詐尸還是另有隱情憾筏,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布花鹅,位于F島的核電站氧腰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏刨肃。R本人自食惡果不足惜古拴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望真友。 院中可真熱鬧黄痪,春花似錦、人聲如沸盔然。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愈案。三九已至挺尾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刻帚,已是汗流浹背潦嘶。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掂僵。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓航厚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親锰蓬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子幔睬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 前言 Jenkins就不用做多余的介紹了,作為CI/CD首選的開源解決方案芹扭,持續(xù)集成 (Continous Int...
    王奧OX閱讀 3,125評(píng)論 1 13
  • 基本介紹 Jenkins是基于Java開發(fā)的持續(xù)集成工具麻顶,用于監(jiān)控持續(xù)重復(fù)的工作。用戶構(gòu)建一個(gè)項(xiàng)目舱卡,自動(dòng)持續(xù)集成可...
    納尼2號(hào)閱讀 919評(píng)論 0 2
  • 1.作用: *持續(xù)辅肾、自動(dòng)地構(gòu)建/測試軟件項(xiàng)目。*監(jiān)控一些定時(shí)執(zhí)行的任務(wù)轮锥。 (例如:獲取題目以及代碼執(zhí)行判錯(cuò)誤) ...
    張培_閱讀 450評(píng)論 1 3
  • 安裝Jenkins 系統(tǒng)環(huán)境:CentOS Linux release 7.3.1611 x86_64 GNU/L...
    Rethink閱讀 11,256評(píng)論 0 42
  • “媽媽矫钓,我什么時(shí)候才能長成像您一樣高大的參天大樹呢?” 種子問舍杜。 種子是大樹上的一粒小種子新娜。種子雖小,心里卻一直懷...
    洛千閱讀 941評(píng)論 1 8