我在詹金斯有一份参数化的工作。它需要一个名为"删除"的选择参数。用"是"和"不"作为选择。 "是"是默认值。工作在提交时触发,开发人员必须快速制作"否"构建处于安静时段时的默认设置,或者有时需要快速生成"是"工作开始前的默认值。这听起来很疯狂!
另一个选项是开发人员拥有一个只有Yes或No的属性文件;当作业被触发时,Jenkins会读取属性文件并继续删除。这也不是很有用,因为开发人员每次提交之前都需要更改此文件。
有没有办法坚持他们的选择,直到有人改变它?例如,如果开发者选择"否"作为选择,工作应继续使用"否"作为删除的值,直到有人将其更改为"是"。任何可以帮助保持输入的Jenkins插件?
由于
答案 0 :(得分:2)
我不知道一个插件会持续存在参数选择。但是,我可以想到以下手工制作的解决方案:
Delete=Yes|No
的属性文件。${JENKINS_HOME}/workspace/${ITEM_FULLNAME}
。)添加您选择的脚本(Groovy,NodeJS,Windows批处理,Shell)作为使用的第一个构建步骤:
curl ${JENKINS_URL}job/${JOB_NAME}/${BUILD_NUMBER}/api/xml?xpath=*/action/cause
(检查现有构建的URL,在手动构建的情况下以及在提交触发构建的情况下返回的内容。)
如果原因是手动构建,请将Delete=<current value>
写入工作区根目录中的属性文件,否则结束脚本。
在上面添加构建步骤注入环境变量→属性文件路径:../<properties file>
。
除非有人改变,否则使用相同的值:
如果您想避免其中的每一个,请使用相同的 Choice参数创建一个项目,该项目只需执行以下操作:
echo Delete=<current value> > ../<properties file>