Jenkins/Unity 简单运用(Windows demo)

      首先,Jenkins官网地址
      正常的下载安装后jenkins会弹出一个网页,可以进行注册账号与初始化,开始要下载一些插件,可以让jenkins自动下载。经过简单的初始化设置之后我们可以进入一个这样的界面:

jenkins界面

1.授权其他用户登录与权限控制

在这里可以进入用户全局隐私设置

权限设置入口

访问控制界面

      在这里可以决定是否允许用户注册,下面是权限的授权策略,途中目前选择的是登录的用户可以做所有事,当然也可以使用下面的安全矩阵模式,该模式通过一个表来配置哪些用户可以做哪些事情。

2.添加节点(执行构建的节点,也就是电脑)

      当有很多功能需要进行构建的时候,我们有时希望让不同的电脑来执行不同的构建函数,这个时候我们就要添加更多的节点进来。
      还是在刚才的Manage Jenkins选项中,找到Manage Nodes选项

Manage Nodes

      在左侧选项卡中选择新建节点后,给节点起一个名字,然后选择Permanent Agent,也可以选择使用现有的配置(如果之前已经创建过节点)生成一个全新的节点。


创建节点名字

      写好名称,远程根目录和标签。这里的远程目录用于存储Jenkins客户端运行文件。其他设置默认值就可以了。这个时候生成的节点是未连接状态,可以用其他的电脑访问你的Jenkins,经过一系列设置就可以连接上了。(这一部分因为只有一台电脑,而且暂时没有使用其他节点的需求,这里只是做一个demo让本地能跑通,所以这里其实没有实际操作过,暂时粘点百度来的流程,如果后面有使用再补上)

3.创造一个构建任务

      首先,在工作台中选择新建一个任务


新建任务

      然后我们可以自己创建一个自由风格的工程,在这个界面,我们同样可以选择一个已经创建好的构建任务进行复制,操作和上面复制节点类似(只要输入构建任务名就可以)。

创建一个自定义工程
1.我们可以自己定义一些构建任务参数,上面指的是构建的结果是否删除,里面可以自定义最多保存这个任务的多少个构建结果,以及构建结果保存的天数。
2.下面的选项可以配置这个构建任务是否需要参数,如果勾选后可以给shell文件传递一些参数过去,也就可以得到不同的构建结果,我们在后面放了一张选择的构建参数界面。(是否参数化要看具体的构建任务需求,本项为可选项)
配置构建任务参数

构建参数选择

然后就是关键的构建部分了:

1.添加一个构建步骤:
      这里要注意一下,很多教程写的是Execute shell,但是这个是针对linux平台的(或者mac也可以?),我用的是Windows平台,使用Execute shell构建时会报错找不到文件The system cannot find the file specified
      Windows平台请使用第一个Execute Windows batch command。
添加构建步骤
2.添加一个测试脚本,测试脚本代码很简单,只有一行echo YES!
添加一个测试脚本
3.测试!启动!构建!

      回到工作台,点击右边的按钮就可以对该任务进行构建了,构建的结果也会写在边上,可以进入对应的构建版本号查看log日志。

构建按钮

构建日志

日志详情

4.使用Jenkins与Unity进行交互

     首先我们需要写一个简单的bat脚本,使用这个bat脚本可以调用unity中的某个函数。Unity有提供对应的API给我们,可以说很贴心了。Unity API
     下面是我自己做demo使用的bat代码,很简单只有一行。其中各个代码含义都可以在API中找到,

-quit 表示执行完程序自动退出
-batchmode 表示使用批处理模式,不会进行弹窗,如果过程中出错会自动退出
-projectPath 表示你的工程地址
-logFile 表示unity输出的log地址
-executeMethod 表示你要执行的类名.函数名(可以传参,在后面加一个空格后传入,可以在Jenkins中添加参数化功能,然后传到这里。这里要注意一下,这个脚本要放在Editor文件夹下

     这里的log没有指定位置,会直接生成在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构建,然后可以查看一下生成的log文件~
log结果
I am Unity!!!!!!! 然后剩下的就是发挥大家的想象力,使用Jenkins做很多平时要我们自己浪费时间做的事啦~比如打包呀,检查资源呀什么的。

番外.一些动手过程中遇到的问题

1.Jenkins位置:

      在浏览器里面打开http://localhost:8080/ 局域网内别人可以打开http://”你的ip”:8080/

2.如何重启或重新加载Jenkins?

重启:http://localhost:8080/restart
重新加载配置:http://localhost:8080/reload

3.如何修改Jenkins端口号:

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

4.关于Jenkins的环境变量:

环境变量可以在Jenkins构建函数编写的地方查看,这里只是做一个复读机,整理一下方便以后使用的时候查看

变量名 说明
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)
      后面还有一些关于git与svn的环境变量,这里暂时用不到就先不搬运了。在构建编写代码时如果需要使用环境变量要使用%把环境变量包起来,例如:%WORKSPACE%
      此外,如果要把构建后的网址发给其他同事的话,记得要把system中的Jenkins URL修改一下哦,不然的话使用环境变量获取JENKINS_URL后发送出去是http:/localhost:8080/,同事会访问自己的8080端口,里面肯定是没有东西的!(如果他本地有程序使用8080端口的话当我没说)
修改URL!

参考文章

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容

  • 前言 Jenkins就不用做多余的介绍了,作为CI/CD首选的开源解决方案,持续集成 (Continous Int...
    王奥OX阅读 3,121评论 1 13
  • 基本介绍 Jenkins是基于Java开发的持续集成工具,用于监控持续重复的工作。用户构建一个项目,自动持续集成可...
    纳尼2号阅读 918评论 0 2
  • 1.作用: *持续、自动地构建/测试软件项目。*监控一些定时执行的任务。 (例如:获取题目以及代码执行判错误) ...
    张培_阅读 447评论 1 3
  • 安装Jenkins 系统环境:CentOS Linux release 7.3.1611 x86_64 GNU/L...
    Rethink阅读 11,244评论 0 42
  • “妈妈,我什么时候才能长成像您一样高大的参天大树呢?” 种子问。 种子是大树上的一粒小种子。种子虽小,心里却一直怀...
    洛千阅读 931评论 1 8