jenkins - 如何保留对 Jenkins 的输入?

标签 jenkins jenkins-plugins

我在 Jenkins 有一份参数化的工作。它采用名为“Delete”的 Choice 参数,并以“Yes”和“No”作为选项。 "is"是默认值。作业在提交时触发,当构建处于安静期时,开发人员必须快速将“否”设置为默认值,或者有时他们需要在作业开始之前快速将"is"设置为默认值。这听起来很疯狂!

开发人员的另一个选择是拥有一个属性文件,其中只有"is"或“否”;当作业被触发时,Jenkins 会读取属性文件并继续删除或不删除。这也不是很有帮助,因为开发人员每次提交某些内容之前都需要更改此文件。

有什么办法可以保留他们的选择,直到有人改变它吗?例如,如果开发人员选择“否”作为选项,则作业应继续使用“否”作为删除值,直到有人将其更改为"is"。有什么 Jenkins 插件可以帮助保存输入吗?

谢谢

最佳答案

我不知道有哪个插件可以保留参数选择。不过,我可以想到以下手工解决方案:

  • 添加首字母为 Delete=Yes|No 的属性文件到 Jenkins 的工作区根目录。
    (工作区根目录取决于管理 Jenkins配置系统高级...>工作区根目录。我使用${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>到工作区根目录中的属性文件,否则结束脚本。

  • 添加构建步骤注入(inject)环境变量属性文件路径:../<properties file>在上面的旁边。

除非有人更改,否则将使用相同的值:

  • 在工作区根目录的属性文件中
  • 手动触发构建并选择其他值时

如果您想避免其中的每一个,请创建一个具有相同选择参数的项目,该项目只需执行以下操作:

echo Delete=<current value> > ../<properties file>

关于jenkins - 如何保留对 Jenkins 的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37998428/

相关文章:

jenkins - 如何在 'Delete workspace before build starts' 部分中使用排除文件夹选项?

Jenkins 在 10 分钟内从 Github 获取时超时。

其他用户缺少 Jenkins "Keep this build forever"按钮

java - docker centos :6. 6 镜像 "/bin/sh: java: command not found"java 已安装

macos - Jenkins OSX "cannot run program"

svn - Jenkins CI : How to trigger builds on SVN commit

ruby - 使用 Ruby 验证 Jenkins 插件表单

jenkins - 在管道开始时循环环境指令内的环境变量列表

maven - Jenkins使用docker构建无法访问nexus的Maven镜像

git - Git 的行尾