【发布时间】:2020-11-02 08:17:50
【问题描述】:
我知道 Jenkins 中有一个 Nexus 平台插件 https://plugins.jenkins.io/nexus-jenkins-plugin/,但我不确定以下是否可行,任何建议或建议将不胜感激。
在 Jenkins 中,您有 Git 选择参数,这允许您在工作中构建特定的标签/分支,Sonatype Nexus 有类似的东西吗?我们有一个内部链接,我们可以在其中上传和标记 docker 图像。
我目前有一份 Jenkins 工作,我必须手动输入图像版本。 Jenkins有没有办法获得一个选择参数,我可以在其中查询nexus中的所有标签。
例如我可以运行命令-> docker pull internal/application/service:0.0.1 因此开发人员会上传一个新版本,例如 0.0.2
来自 Jenkins,我想显示 0.0.1 或 0.0.2 的列表供支持团队构建。 不确定目前是否可行?
2020 年 7 月 15 日更新
我已经阅读了主动选择参数插件。这允许您执行一个 groovy 脚本。
所以我创建了以下
import groovy.json.JsonSlurper
// GET
try {
def get = new URL("http://internalserver:8081/service/rest/v1/search?repository=docker-internal&name=application/service/moo").openConnection();
def getRC = get.getResponseCode();
//println(getRC);
if (getRC.equals(200)) {
//println(get.getInputStream().getText());
JsonSlurper slurper = new JsonSlurper()
Map parsedJson = slurper.parseText(get.getInputStream().getText())
tags = parsedJson.items.version
//println(tags)
def sorted_tags = []
sorted_tags.push(tags)
println(sorted_tags)
}
}catch(Exception e){
println(e)
}
如果我从我的 IDE 运行此代码,它会打印出标签,但如果我将它添加到活动选择插件,我的下拉菜单是空白的?
【问题讨论】:
-
请改写 questiin ... 没有“Jenkins 中的 Nexus 存储库管理器”。有插件Nexus Platform、Nexus Artifact uploader 和可能感兴趣的Maven Artifact ChoiceListProvider (Nexus).. 但都与独立的 Nexus 相关。
-
对不起,意思是说nexus平台插件。
标签: jenkins groovy jenkins-plugins sonatype