【问题标题】:Get a list of builds with the jenkins artifactory plugin?使用 jenkins artifactory 插件获取构建列表?
【发布时间】:2018-08-23 11:05:53
【问题描述】:

https://wiki.jenkins.io/pages/viewpage.action?pageId=99910084

我可以上传和下载,但我只是想查询并获取一个 repo 的工件构建列表。

我想获取给定 repo 的所有构建的列表,以将其呈现给用户,以便他们可以选择以前的构建进行部署。

我只需要一个构建列表。我可以通过休息调用来做到这一点,但我已经有凭据和为 Jenkins 插件配置的服务器 URL。使用插件会很好。

我如何使用插件执行此操作(无需自己进行休息调用)?

【问题讨论】:

    标签: jenkins jenkins-plugins jenkins-pipeline artifactory


    【解决方案1】:

    看起来还不可能。

    几个月前的这个post 包含一个可能的解决方案(也称为解决方法),其中提问者发布了他们自己的答案。

    为了获取构建列表,我在共享库中编写了一个 groovy 类来返回版本号列表和最新版本号。

    【讨论】:

    • 更新了我的问题,我想要一个“构建”列表而不是工件。我想向用户展示以前构建的列表以供选择下载
    • 更新了我的答案。我不认为您想要做的事情是本机支持的。 Artifactory 当前会将您引导至 REST API。我知道你不想要,但它是受支持的。
    【解决方案2】:

    刚遇到同样的要求。 Artifactory 插件似乎仍然不支持。

    因此,我编写了以下小型管道脚本。您必须在某个具有curl 的节点中运行它。所以很可能这需要一个 linux 节点或 cygwin 安装。

    String jsonData = ""
    node('linux') {
        withCredentials([usernamePassword(credentialsId: '<credentials id>', passwordVariable: 'password', usernameVariable: 'username')]) {
            jsonData = sh(returnStdout: true, script: "curl -u '$username:$password' <url to artifactory repository>")
        }
    }
    
    def json = readJSON(text: jsonData)
    
    List<String> deployments = []
    json.children.each {
        echo it.uri
        deployments << it.uri
    }
    

    如果deployments 变量将包含所选存储库中可用的工件列表。

    【讨论】:

      猜你喜欢
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 2017-04-30
      • 1970-01-01
      • 2011-07-24
      相关资源
      最近更新 更多