文章已经迁移到我的个人博客,里面还有更多内容。
5. Jenkins使用 -- jobs
前几次我们一直在说项目(project),现在又出现一个job,他们分别是什么呢?根据这个讨论,这两个基本上是一个东西,名字基本可以互通,以下不再区分。
新建
进入主页,点击新建
然后出现下图界面,Enter an item name中输入DevProject1,然后选择构建一个自由风格的软件项目,最后点击OK保存。
这样,我们在主页就可以看到这个项目了
配置介绍
鼠标悬浮在项目名称上,出现一个倒三角,点击出现下拉菜单,选择配置,进入项目配置页面。项目名称没什么好说的,就是项目名称而已。描述和上一部分基本设置中的内容一样。源码管理可以选择自己使用的管理方法,下一部分我们会讲使用git和github。其他构建方便的东西,实际操作的时候再说,现在自己熟悉下即可。
不过这里简单说下构建触发器的Build periodically中日程表这个部分,其实大家自己点开帮助按钮就可以得到足够的信息。
分钟 小时 日期 月份 星期几
下面相关很多部分很多取自linux计划任务crontab使用方法,并做相应调整和修改。
- 分钟:表示每个小时的第n分钟,取值[0,59],比如填写10,就是表示每个小时的第10分钟;
- 小时: 表示每天的第n个小时,取值[0,23],比如填写3,表示每天的3点钟,如果配合上面的10,就表示每天的3点10分会执行这个任务;
- 日期: 表示每月的日期,根据不同的月进行填写,[1,31],比如2月,就没有30,31
- 月份:取值[1,12]
- 星期几:取值[0,7],0和7表示星期天,一般星期和日期不能同时出现,比如星期填写6,就可以表示3月的每个星期6这样的时间,如果和日期一起用,就会出现冲突,因为日期对应的星期可能不是我们填写的星期,当然,如果你确定的话,填写也没关系。
其他格式解释:
- ,号表示一起使用,比如上面例子里,可以改成0,30 * *……,0,30的意思就是每小时的第0分钟和第30分钟会执行这个命令
- -号表示一个区间,比如上面的改为0 3-5 * * *3-5表示3,4,5,也就是说3-5之间任何一个可选的值都会用上
- *号表示这个位置的任何一个有效数字都会使用,比如上面的例子里,第一列是0,其他全是,意思就是第二列[0,23]这24个数字全部用上
- /号表示“每隔”,和逗号连接号意义不同,比如我们改为0 */2 * * * */2表示每隔两个小时执行一次,斜杠前面的值表示先限定一个区间,比如23-6/2表示在晚上11点到早上6点之间,每隔两个小时
快速帮助文档有几个例子,不明白的话可以看看,很简单。
熟悉Jenkins导航
我们这里先熟悉下Jenkins的导航,首先应该注意,头部有导航标识(这个应该叫啥啊,我不知道,自己取得名字,请大家能够提供学名,谢谢),如下图所示
如果我点击一个项目名称,比如DevProject1
进入这个项目的页面,如下,注意红框中的变化
鼠标悬浮会有各种下拉菜单,自己可以体验。
项目状态
进入Jenkins主页,如果有项目的话,会如下图显示
注意红框S和W对应的标识,鼠标悬浮提示分别为“上次构建状态"和”编译晴雨表“。
S好理解吧,那W是什么呢?我们通过实验来看。
点击进入一个项目,或者通过下拉菜单,点击立即构建(第一次),出现下图变化
S变蓝色,鼠标悬浮提示success, W太阳位置,悬浮提示如下图
这次模拟一次构建失败。进入项目配置,找到构建,因为我用的Mac,所以选择”Execute shell“,如果是win用户,请选择第一个选项。
Command框中,输入不是mac也不是win命令的一串无意义字符,比如“asdf",保存设置,然后点击立即构建(第二次),观察项目主页图标变化。
然后我再点击一次立即构建(第三次),继续观察项目主页图标变化。
然后删除刚才的那个无意义的命令,再次构建(第四次)。然后再次构建(第五次)。项目主页如下显示,S为蓝色,W显示乌云。鼠标悬浮,观察提示。
有没有看出,S就是简单的本次构建成功与否,W是近五次构建情况总览,按照成功与失败比例,对应晴天到雷雨。
进入我们的项目主页,左下侧还能看到构建历史(这里我有多做了几次错误构建,不要在意这些多出来的构建)
点击某个记录,今日此构建的主页
左侧各种查看和设置选项,自己可以试试。比如点击Console Output,可见:
显示控制台输出,并有我们失败的提示。
远程启动构建
进入某个项目的设置,勾选触发远程构建,在身份验证令牌中填入一个字符串,比如“111”
根据下方提示,浏览器输入“JENKINS_URL/job/TestProject1/build?token=TOKEN_NAME ”启动构建。
“JENKINS_URL”是构建主机的地址。在这里,我们并没有远程主机连接,不过我们可以用本机实验,那么“JENKINS_URL”就是“http://0.0.0.0:8080/”。
“TOKEN_NAME”就是我们刚才设置的字符串(“111”)。
浏览器地址栏输入:“http://0.0.0.0:8080/job/TestProject1/build?token=111”,会有提示应该使用post,不要用get。不管他,点击Proceed继续。回到项目主页,可见已有构建。
因为使用get不安全,所以建议使用post远程构建,具体方法可以参考这里Jenkins API Integration : Trigger Job Remotely via Jenkins API
项目串联运行
为了演示,快速建立三个项目如图:
进入“2”的配置,找到构建触发器,勾选Build after other projects are built,Projects to watch填入“1”。注意下面三个单选框,这里使用默认设置。
然后在构建后操作的操作中,选择Build other projects
要构建的项目输入“3”。
保存回到“2”项目主页后,发现如下图变化
查看其他两个项目,同样出现对应的上下级项目。