让詹金斯每天自动构建一个,但仅在源代码更改时构建
Make jenkins auto build one a day but build only when there are source code changed
我在配置 jenkins 以自动构建和部署 java 项目时遇到问题。我想每天构建和部署一次。但是,此构建仅在白天发生变化。如果没有变化,我不希望詹金斯自动构建和部署。
注意:我使用gitlab作为源代码管理。
你能帮我配置一下吗?
这是详细文档:“Jenkins CI 集成”
http://doc.gitlab.com/ee/integration/jenkins.html
更新 以匹配您的评论。
您不想通过 webhook 触发 Jenkins 构建。没关系。
您想每天查看代码更改 1 次。
Linux 上的示例,如果有任何代码更改,请在 6:00 上午构建。
安装
构建触发器
- 定期构建:
0 6 * * *
- 执行shell
像这样
SINCE=`curl http://192.168.0.1:8080/job/MyJava/lastStableBuild/buildTimestamp?format=dd-MMM-yyyy`
cd /opt/code/myjava/
git log --pretty="%h - %s" --author=gitster --since=$SINCE --before=$SINCE --no-merges -- t/
Post 构建操作
- Post 构建任务
- 日志文本:
commit
- 操作:
AND
- 脚本:用于构建 Java
的脚本
Jenkins 文本查找器
- 同时搜索控制台输出
- 正则表达式:
Could not match
- 如果找到则不稳定
首先,您应该将作业配置页面顶部的 Git SCM 部分配置为指向您的 GitLab 存储库。
然后您可以使用内置的 "Poll SCM" 构建触发器 — 这将定期检查您的源代码存储库是否已更改 — 如果已更改,将启动此作业的构建。
如果存储库自上次构建以来没有更改,则不会启动任何构建。
您可以配置此触发器——无论是使用类似 cron 的语法,还是像 @daily
或 @midnight
这样的快捷方式——这样 Jenkins 每天只检查一次源存储库。
此外,您应该确保 "ignore post-commit hooks" 选项已启用。如果您使用 Git 存储库中的 webhooks 在提交发生时启动 Jenkins 作业,则此选项可防止每次 Git 提交触发您每天一次的作业。
我在配置 jenkins 以自动构建和部署 java 项目时遇到问题。我想每天构建和部署一次。但是,此构建仅在白天发生变化。如果没有变化,我不希望詹金斯自动构建和部署。 注意:我使用gitlab作为源代码管理。 你能帮我配置一下吗?
这是详细文档:“Jenkins CI 集成”
http://doc.gitlab.com/ee/integration/jenkins.html
更新 以匹配您的评论。
您不想通过 webhook 触发 Jenkins 构建。没关系。
您想每天查看代码更改 1 次。
Linux 上的示例,如果有任何代码更改,请在 6:00 上午构建。
安装
构建触发器
- 定期构建:
0 6 * * *
- 定期构建:
- 执行shell
像这样
SINCE=`curl http://192.168.0.1:8080/job/MyJava/lastStableBuild/buildTimestamp?format=dd-MMM-yyyy`
cd /opt/code/myjava/
git log --pretty="%h - %s" --author=gitster --since=$SINCE --before=$SINCE --no-merges -- t/
Post 构建操作
- Post 构建任务
- 日志文本:
commit
- 操作:
AND
- 脚本:用于构建 Java 的脚本
Jenkins 文本查找器
- 同时搜索控制台输出
- 正则表达式:
Could not match
- 如果找到则不稳定
首先,您应该将作业配置页面顶部的 Git SCM 部分配置为指向您的 GitLab 存储库。
然后您可以使用内置的 "Poll SCM" 构建触发器 — 这将定期检查您的源代码存储库是否已更改 — 如果已更改,将启动此作业的构建。
如果存储库自上次构建以来没有更改,则不会启动任何构建。
您可以配置此触发器——无论是使用类似 cron 的语法,还是像 @daily
或 @midnight
这样的快捷方式——这样 Jenkins 每天只检查一次源存储库。
此外,您应该确保 "ignore post-commit hooks" 选项已启用。如果您使用 Git 存储库中的 webhooks 在提交发生时启动 Jenkins 作业,则此选项可防止每次 Git 提交触发您每天一次的作业。