首先,Jenkins官网地址
正常的下载安装后jenkins会弹出一个网页,可以进行注册账号与初始化,开始要下载一些插件,可以让jenkins自动下载。经过简单的初始化设置之后我们可以进入一个这样的界面:
1.授权其他用户登录与权限控制
在这里可以进入用户全局隐私设置
权限设置入口访问控制界面
在这里可以决定是否允许用户注册,下面是权限的授权策略,途中目前选择的是登录的用户可以做所有事,当然也可以使用下面的安全矩阵
模式,该模式通过一个表来配置哪些用户可以做哪些事情。
2.添加节点(执行构建的节点,也就是电脑)
当有很多功能需要进行构建的时候,我们有时希望让不同的电脑来执行不同的构建函数,这个时候我们就要添加更多的节点进来。
还是在刚才的Manage Jenkins选项中,找到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-{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) |
网友评论