首页 > 其他分享 >Jenkins 踩坑 | job 创建、参数化、定时构建及时区偏差问题解决

Jenkins 踩坑 | job 创建、参数化、定时构建及时区偏差问题解决

时间:2022-08-30 18:04:47浏览次数:101  
标签:构建 一次 job 参数 测试 Jenkins 定时

⬇️ 点击“下方链接”,提升测试核心竞争力!

>>更多技术文章分享和免费资料领取
1)启动 Jenkins 后在首页点击"开始创建一个新任务"。
2)输入任务名称,选择自由风格,点击“确定”。
1) 任意输入描述,然后勾选"丢弃旧的构建", 在"保持构建的最大个数中"输入 3。
1)勾选"参数化构建过程",选择添加"字符参数"
2)设置参数名称、默认值和描述
1)在"构建触发器"中勾选"定时构建",日程表中输入H2/ * * * *,表示每两分钟构建一次。
1)在构建中选择执行 shell,简单的执行一条打印语句,打印上面设置好的参数param;设置好之后保存即可。

  • 可以看到构建结果是每 2 分钟构建一次,且只保留最近的 3 次构建,参数 param使用了默认值Jenkins。
  • 打开控制台输出可以看到执行的日志信息。
  • 如果想要修改参数值,选择Build with Parameters,修改参数,点击开始构建即可。

在上述设置定时构建时,输入了一行命令H2/ * * * *来表示每隔 2 分钟构建一次,这是一种crontab的写法,具体描述分五个部分:

  • 星号(*):代表所有可能的值,例如 month 字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
  • 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。
  • 中杠(-):可以用整数之间的中杠表示一个整数范围,例如 “2-6” 表示 “2,3,4,5,6”。
  • 正斜线(/):可以用正斜线指定时间的间隔频率,例如 “0-23/2” 表示每两小时执行一次。同时正斜线可以和星号一起使用,例如 */10,如果用在 minute 字段,表示每十分钟执行一次。
    但是实际在 Jenkins 中进行定时构建时,写法相似但是还是有区别,还是以上述的H2/ * * * 来表示每隔 2 分钟为例,当我们用/2 * * * *写法时:
    可以看到 Jenkins 建议我们使用H来代表通配符,因此在表示每隔多久时建议使用H/的方式。

另外,如果表示每天上午 9 点构建,如果使用0 9 * * *:
可以看到 Jenkins 建议我们使用H 9 * * *的方式:
下面是一些常用定时方式的参考示例:
1.每 30 分钟构建一次:H/30 * * * *。
2.每 2 小时构建一次:H H/2 * * *。
3.每天早上 9 点构建一次:H 9 * * *。
4.每天 8 点、12 点、21 点各构建一次:H 8,12,21 * * *。
5.周一至周五,每天 22 点到 23 点之间每隔 3 分钟构建一次:H/3 22-23 * * 1-5。
运行完毕后,会发现一个问题,构建的时间与我们实际的时间不一致:

  • Jenkins 显示时间

  • 系统实际时间
    因为我们是用 Docker 部署的,所以再通过打印 Docker 容器的时间进行查看:
    再进入"系统管理"->"系统信息"->"user.timezone"查看:
    综上所述可以确定因为 Jenkins 容器使用的是 UTC 时间,和我们的北京时间差了正好 8 个小时,针对我们是 Docker 部署的,解决方法如下 (其他直接在系统部署的可以另行百度~)。
    在 Jenkins 容器启动的时候添加参数
    启动后再次查看"系统管理"->"系统信息"->"user.timezone",发现时区已修改为上海:
    查看构建历史,发现时间已于系统时间保持一致,修改完成:

以上,欢迎大家一起交流探讨。

测试开发从入门到高级实战系统进阶必备,可能是业界最具深度、最贴近大厂一线实践的测试开发课程。

4 个月由浅入深,强化集训,测试大咖思寒领衔主讲,授之以渔,通过 10+ 企业级项目实战演练,带你一站式掌握 BAT 测试开发工程师必备核心技能(对标阿里巴巴P6+,挑战年薪50W+)!学员直推 BAT 名企测试经理,普遍涨薪 50%+!

提升自己的核心竞争力吧
原文链接

⬇️ 点击“下方链接”,提升测试核心竞争力!

>>更多技术文章分享和免费资料领取
img

标签:构建,一次,job,参数,测试,Jenkins,定时
From: https://www.cnblogs.com/Tester-muller/p/16640299.html

相关文章

  • Jenkins 踩坑(三)| Email 配置与任务邮件发送
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取在系统管理->插件管理中下载插件:1.通过网页端QQ邮箱的设置进入到邮箱客户端设置页面。2.......
  • Jenkins 踩坑(四)|基于接口自动化测试完成 Jenkins+GitHub+Allure 的结合
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取1.关于使用Jenkins创建job完成自动化测试,核心在于项目的拉取和执行,至于job的创建大同小异,需要......
  • Docker版本的Jenkins 安装 npm
    在实现docker版本的jenkins时遇见jenkinsnpmnotfound的错误。原因:容器中没有安装nodejs,npm。故自定义构建镜像并安装nodejs,npmDockerfileFROMjenkins......
  • Jenkins+SpringCloud(多模块)+Vue项目详细配置
    一、Jenkins安装及所需插件安装   安装过程略。   我这用到工具包括JDK、Git、Maven、NodeJS:可以选择自行在服务器安装,也可以通过Jenkins自动安装,位置在系统......
  • jenkins Webhook Trigger 使用
    Jenkins插件中心安装插件GenericWebhookTrigger设置APITokenJenkins->系统管理->管理用户->设置->APIToken->添加Token配置GitlabwebHook添加......
  • jenkins使用shell脚本执行nohup java -jar包失败
    一、问题通过jenkins执行shell脚本时,脚本中是通过nohupjava-jar&的方式启动,显示执行成功,但是服务却没启动,脚本如下:#!/bin/bashnohupjava-Xms800m-Xmx800m-XX:P......
  • 基于Coravel的简单实现定时任务
    Coravel是什么?Coravel是一个接近零配置的.NETCore库,可以非常的快速简洁的实现任务调度、缓存、队列、邮件、事件广播等。Coravel本质是通过注入Timer支持秒级的定时......
  • python列题(定时器|搜索框)
    尝试编写JS时间案例 1.页面定时器案例 有一个input框两个按钮一个开始一个结束 1.点击开始按钮input内展示当前时间并按秒数刷新2.点击结......
  • SqlServer定时备份数据库
    https://jingyan.baidu.com/article/75ab0bcb0f1a6497864db2ed.html1、打开SqlServer数据库,点击【管理】,右键【维护】,选择维护计划向导  2、输入计划名称,点击【更改......
  • springboot定时同步数据,从sqlserver到mysql
    定时同步数据,从sqlserver到mysql 注意事项:一.primary:master #设置默认的数据源或者数据源组,默认值即为master二.@Scheduled()和 @DS("slave_1")注解 步骤:1.......