美文网首页
Jenkins/Unity 简单运用(Windows demo)

Jenkins/Unity 简单运用(Windows demo)

作者: 江枫枫Maple | 来源:发表于2019-06-13 16:04 被阅读0次

          首先,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!

    参考文章

    相关文章

      网友评论

          本文标题:Jenkins/Unity 简单运用(Windows demo)

          本文链接:https://www.haomeiwen.com/subject/jaksfctx.html