如何从 Jenkins 计划中排除特定日期?
例如:周一至周五 7 点至 17 点每 5 分钟一类。 H/05 7-17 * * 1-5
但是,如果一周中的某一天是公共(public)假期,则不应运行。我该如何配置?
谢谢
最佳答案
目前 Jenkins crontab 不支持诸如公共(public)假期排除之类的复杂逻辑。但是,您可以使用一些选项来实现此目的:
第一
对于我的项目,我创建了自己的假日数据库,它是一个包含我想要排除的日期的文件,例如:
# /path/to/holidays
# New Year's Day
01-01-2017
# Christmas
12-25-2017
我使用 Jenkins shell 脚本检查它,正如建议的 here .
例如上述文件格式:
#!/bin/bash
TODAY="`date +%m-%d-%Y`"
if grep -q $TODAY /path/to/holidays; then
echo Skipping holiday for $*
exit 0
fi
$*
第二个
一个更强大但更复杂的解决方案是基于以下内容创建您自己的插件 Run Condition Example Plugin其中您排除了您所在国家/地区的公共(public)假期,例如 plugin 。
关于 Jenkins 从计划中排除日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41219157/