我正试图找到一种方法让Jenkins根据SVN拉取中包含的文件类型有条件地执行构建步骤。也就是说,如果构建包含对任何SQL文件的更改,我想执行“数据库检查”构建步骤。
我的SVN服务器设置了一个PostCommit脚本,调用Jenkins来启动构建。此PostCommit脚本会检查提交中包含的文件类型,并根据文件类型调用相应的Jenkins作业。但是,在某些情况下存在重叠,并且单个解决方案具有多个作业似乎是一个维护问题。
到目前为止,我尝试使用Conditional BuildStep Plugin并使用表达式${CHANGES, showPaths=true}
使用正则表达式匹配条件。我从这个SO答案中得到了这个表达的想法。
以下是条件步骤的样子:
当我尝试执行此Job时,我收到以下Jenkins错误,这听起来似乎不支持CHANGES
令牌:
Run condition [Regular expression match] enabling prebuild for step [BuilderChain]
Exception caught evaluating condition: [org.jenkinsci.plugins.tokenmacro.MacroEvaluationException: Unrecognized macro 'CHANGES' in '${CHANGES, showPaths=true}'], action = [Fail the build]
Build step 'Conditional steps (multiple)' changed build result to FAILURE
Build step 'Conditional steps (multiple)' marked build as failure