【问题标题】:How to Get a list of job source code management and build for all jobs如何获取作业源代码管理列表并为所有作业构建
【发布时间】:2021-02-05 00:35:47
【问题描述】:

我正在寻找一种方法来获取配置中的构建和源代码管理部分的列表。

例如:我有带有 Testcomplete 和 SoupUI Pro 插件的作业,在每个作业中,在配置部分,我们输入 git repo 名称、testsuite 名称、目录等...

目前,我必须去每个工作,单击配置并获取我需要的值,如果我可以获取所有工作的所有这些信息,那就太好了。我查看了配置切片,但它没有我需要的部分。

提前感谢您的帮助。

【问题讨论】:

  • 你试过用 groovy 脚本拉信息吗?
  • @IanW 不,我没有......在 Groovy 方面没有太多经验,你有我可以构建的样本吗?谢谢还添加了屏幕的图像。

标签: jenkins build


【解决方案1】:

我没有使用你提到的任何一个插件,但是这个粗糙的小 groovy 脚本会找到每个 Freestyle 工作,如果它有一个 gitSCM 步骤,报告主要的 Git repo url,然后为每个“调用顶级 Maven target",如果设置了,则报告 POM 值。

<JENKINS_URL>/script 运行或在 Jenkins 作业中使用“执行系统 ​​Groovy 脚本”(不是“执行 Groovy 脚本”)。

您可以修改以找到插件的构建器步骤和属性。您可以通过检查 <job>/config.xml 而不是 <job>/configure 来获取值。

更新了示例,特别包括查找TestComplete 插件 (com.smartbear.jenkins.plugins.testcomplete.TcTestBuilder) 值。 ReadyAPI Functional Testing 插件的类似方法留给 OP - (com.smartbear.ready.jenkins.JenkinsSoapUIProTestRunner)

警告: soapui-pro-functional-testing:1.6 以明文形式传输密码。 SmartBear 的 Zephyr 产品也是如此。不会激发人们对标语是“质量比以往任何时候都更重要......我们将帮助您实现目标”的公司的信心。

Jenkins.instance.allItems.findAll() {
  it instanceof hudson.model.FreeStyleProject
}.each { job ->
  if (job.scm instanceof hudson.plugins.git.GitSCM) {
    println job.fullName + ' | ' + job.scm.userRemoteConfigs.url[0]
    job.builders.findAll() {
      it instanceof hudson.tasks.Maven
    }.each {step ->
      println '   : ' + step?.pom
    }
    job.builders.findAll() {
      it instanceof com.smartbear.jenkins.plugins.testcomplete.TcTestBuilder
    }.each {step ->
      if (step?.getLaunchType() == 'lcRoutine') {
        println '   : ' + step?.getProject() + ' : ' + step?.getUnit() + ' : ' + step?.getRoutine()
      }
    }
  } 
}
return

ps:我确信有一种更简洁的迭代方式,但我无法完成所有工作。请务必使用“?”处理空值

【讨论】:

  • 谢谢@IanW - .. 我尝试了几种方法来添加我想要的部分,但出现错误。我添加了另一张图片i.stack.imgur.com/Je9h7.png 我添加了:job.builders.com.smartbear.jenkins.plugins.testcomplete.TcTestBuildersuite.unit[0] 但没有运气..
  • @Mochi79,更新了代码。根据您为 TestComplete 插件选择的选项,它会变得复杂。请考虑 Ipvote 和“已回答”,因为 sol'n 足够完整。请注意,这取决于 GitSCM 的外部检查,这可能不是必需的,因为这是在 SCM 部分中,而不是在构建步骤部分中,但是您说的是“git repo”,所以它就在那里。
  • - 效果很好!!再次感谢您的帮助!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
  • 2016-02-24
  • 1970-01-01
  • 2018-01-07
  • 1970-01-01
相关资源
最近更新 更多