当前位置: 首页 > 知识库问答 >
问题:

如何覆盖默认Jenkins作业参数?

李疏珂
2023-03-14

我目前正在做一个项目,在这个项目中,我们有一个jenkins实例与一个单独的网站并排运行,工作流程是这样的,用户需要点击网站中的链接,从而触发jenkins实例中的jenkins作业。

触发的jenkins作业有几十个参数,我们目前正在做的是,该网站将使用javascript构建一个如下URL:

https://JENKINS_HOST/作业/JOB_NAME/build with Parameters? DOZENS=of

然后用户将单击此(发送GET请求),jenkins会显示一个小警告页面,上面写着“您应该改用POST,无论如何单击继续进行。”

过去,单击继续后,您会被发送到作业页面,在那里您可以看到作业的状态,但我们最近升级了jenkins,现在只有单击继续后才能获得空白的白色屏幕。

我在这里看到了另一个答案,“空白白屏”问题的解决方案是提交帖子,而不是get,但这对我们来说是个问题,因为我们的Jenkins和我们的二级网站都暴露在公共互联网上,所以我们不能仅仅生成一个API令牌用于触发工作,因为这意味着任何随机的人都可以触发我们的工作。我们通过使用openid插件和一些基于该插件的ACL来处理安全性,因此我们实际上需要能够执行GET请求,让用户登录(如果他们还没有登录),然后以登录用户的身份提交作业。

那么,有没有一种方法可以代替“远程触发作业”,只显示build parameters表单,而使用GET parameters预先填充的值?通过这种方式,我们的用户将能够直观地查看参数,并在单击“构建”然后观看状态实时更新之前可能进行更正。

到目前为止,我能找到的所有留档都假设作业将由脚本触发,并给出了如何使用curl提交POST请求的示例,但这种事情对我没有帮助。我希望人类以交互方式触发作业,目前的体验不是特别用户友好。

谢谢

共有1个答案

彭洲
2023-03-14

事实证明,我正在寻找的功能是由Build With Parameters插件提供的。这在我的搜索中出现过几次,但每次我都忽略了它,以为它只是内置的buildWithParameters功能,不能满足我的需求。

忽略这个不幸的名字,这个插件完全符合我的要求:它向您显示build parameters表单,并从GET parameters中填充值。

 类似资料:
  • 我有一个RESTAPI,我不想强迫客户端发送请求参数。我有将近400个api方法,我不想将所有参数设置为“required=false” 我想覆盖Spring RequestParam的默认行为。我想将RequestParam接口的“required”属性的默认值设置为“false”。 有什么方法可以覆盖它吗?如果我不能或这不是最佳实践,有什么方法可以解决上述问题。

  • 我使用远程访问API远程触发参数化Jenkins作业,如下所示: 我希望Jenkins为我的一个参数使用配置的默认值,但似乎所有参数都需要值。 如果我省略了一个参数,作业会将其视为空字符串。 是否有办法使其使用参数的配置默认值? 编辑:解决方案(根据Daniel S.)是使用,如下所示: 另一个编辑:但是现在的问题是不能在没有参数的作业上工作。因此,它不能用于通用脚本来启动我的所有工作。

  • 我试图将Spring应用程序(大部分)转换为Spring Boot应用程序。在应用程序中,我有一个HTTP基本过滤器,收集用户名和密码,然后在DataSource实现中作为变量传递。 在这个数据源中,getConnection()方法是这样的: (由于StackOverflow格式问题,\n作为新行) 在Spring中,我可以毫无问题地实现@autowiledPrivate DataSource

  • 我不太确定该怎么写,但我有一个名为的工作,它使用CloudConvert将上传的文件(例如PDF)转换为JPG。 单独使用,效果很好。我可以上传一个文件,它将被保存到S3,然后CloudConvert获取S3文件,转换它并上传它。完美。 有人知道我可以尝试什么吗?我甚至不确定从哪里开始调试它。

  • 问题内容: 我已经能够覆盖所有名称以“ android:”为前缀的主题,但是Android themes.xml还定义了似乎无法被覆盖的属性。例如: colorTheground是在Theme.Light xml中定义的,但是在此处添加它可以使我 错误。如何为整个应用程序覆盖该样式? 问题答案: 您可以用修改属性(如)的方式覆盖标准属性,只是不要忘记添加如下前缀:

  • 问题内容: 我想覆盖Java外观。我只想显示不同的按钮。 我想要Windows Look and Feel的所有功能,但仅按钮有所不同。希望你明白我的意思。 还告诉我如何制作圆形的JtabbedPane ??? 问题答案: 自定义GUI类 调用您的自定义GUI类