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

简介: 1)启动 Jenkins 后在首页点击"开始创建一个新任务"。2)输入任务名称,选择自由风格,点击“确定”。1) 任意输入描述,然后勾选"丢弃旧的构建", 在"保持构建的最大个数中"输入 3。1)勾选"参数化构建过程",选择添加"字符参数"2)设置参数名称、默认值和描述1)在"构建触发器"中勾选"定时构建",日程表中输入H2/ * * * *,表示每两分钟构建一次。1)在构建中选择执

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",发现时区已修改为上海:
查看构建历史,发现时间已于系统时间保持一致,修改完成:

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

原文链接
更多技术分享:https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=Aliyun&timestamp=1650007143
点击查看

相关文章
|
7月前
|
jenkins Java Linux
Jenkins环境的部署及任务构建
以上就是Jenkins环境的部署及任务构建的全部内容。希望可以帮助你轻松上手Jenkins,让你的CI/CD之旅更加顺畅!
499 68
|
6月前
|
jenkins 持续交付 开发工具
利用Dockerfile自主构建Jenkins镜像
希望这个过程能善用你的野马般想象,把自己置身于和计算机的卓尔不凡的对话中,让编程的过程充满趣味。
237 36
|
5月前
|
Ubuntu jenkins 机器人
在Jenkins上配置触发Ubuntu环境的图形用户界面(GUI)构建任务。
以上,这趟融合了技术与艺术的Jenkins配置之旅就告一段落了。记住,技术应当像艺术一样有趣和生动,这样才能激发出最大的创新和效率。
159 2
|
11月前
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
225 5
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
349 2
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
9月前
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
830 9
|
10月前
|
Java jenkins 持续交付
Jenkins集成Maven
通过以上步骤,可以在Jenkins中成功集成Maven,实现自动化构建和部署。通过定时构建、SCM轮询等方式,可以确保代码库中的最新变更能够及时构建和测试,提高开发效率和代码质量。这种集成方式在实际项目中具有广泛的应用前景,能够显著提升团队的协作效率。
281 8
|
11月前
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
219 12
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值