如何获取作业源代码管理列表并为所有作业构建

How to Get a list of job source code management and build for all jobs

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

例如:我有 Testcomplete 和 SoupUI Pro 插件的作业,在每个作业中,在配置部分,我们输入 git 存储库名称、测试套件名称、目录等...

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

提前感谢您的帮助。

我没有使用过你提到的任何一个插件,但是这个粗糙的小 groovy 脚本会找到每个 Freestyle 作业,如果它有一个 gitSCM 步骤,报告主要 Git 回购 url,然后对于每个“调用 top-level Maven 目标”,报告 POM 值(如果已设置)。

运行 来自 <JENKINS_URL>/script 或在具有“执行系统 ​​Groovy 脚本”的 Jenkins 作业中(不是“执行 Groovy 脚本").

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

来获取值

已更新 示例,具体包括查找 TestComplete plugin (com.smartbear.jenkins.plugins.testcomplete.TcTestBuilder) 值。 ReadyAPI Functional Testing plugin - (com.smartbear.ready.jenkins.JenkinsSoapUIProTestRunner)

的类似方法留给 OP

警告: 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:我确信有一种更简洁的迭代方法,但我无法完成所有工作。一定要使用“?”处理空值