繁体   English   中英

Jenkins-将Artifactory网址传递给升级的构建插件

[英]Jenkins - Pass Artifactory Url to Promoted Build Plugin

tl;博士:

我有一份詹金斯的工作(工作1)。 我想使用Promoted Build Plugin(职位2)打电话给第二份工作。 作业#2已参数化,需要由作业#1生成的人工URL-如何将参数从作业#1传递到作业#2? 使用批准参数似乎无效,因为该参数由环境变量组成。 我实际上只是想在Job#1中创建一个环境变量,然后将其作为参数传递给Job#2-当然有办法做到这一点吗?


用例:

我有一个詹金斯工作,将工件上传到工件。 我正在尝试使用Promoted Build插件来触发将工件URL作为参数的第二项作业。 但是,我似乎找不到任何方法来传递工件URL-在工作本身中,我从$ DEPLOY_URL / $ DEPLOY_URL- $ BUILD_ID.tar.gz创建URL-但是,运行升级脚本时,$ BUILD_ID具有不同的值,因为升级从技术上讲是在不同的工作中进行的(据我所知,插件的工作方式是它创建了一个处理构建升级的小任务,并且它们具有自己的编号)。 我尝试仅将完整URL保存到shell脚本中名为$ ARTIFACTORY_URL的变量中,但是同样,升级工作似乎无法访问它。 如何将变量从詹金斯工作传递到晋升工作?

在构建中,您可以添加一个shell步骤,该步骤在工作空间中创建一个属性文件,可以在升级时通过参数化触发器将其拾取。 一个示例shell步骤可能如下所示:

# Create a properties file for the promotion step
cat > $WORKSPACE/artifactory.properties <<EOF
ARTIFACTORY_URL=$DEPLOY_URL/$DEPLOY_URL-$BUILD_ID.tar.gz
EOF

# Verify the properties file contents
cat ${WORKSPACE}/artifactory.properties

然后,在升级步骤中,添加一个基于其他项目操作的参数化触发器构建 ,设置要触发的作业,然后在“ 添加参数”下, 从属性文件中选择“ 参数”,然后输入属性文件的名称。 这应提供触发作业所需的参数。

我致力于解决亚当·里德(Adam Reid)解决方案局限性的解决方案。

在工作1中:

一种。 添加一个构建步骤“ Execute shell”(亚当的解决方案):

# Create a properties file for the promotion step
cat > $WORKSPACE/artifactory.properties <<EOF
ARTIFACTORY_URL=$DEPLOY_URL/$DEPLOY_URL-$BUILD_ID.tar.gz
EOF

# Verify the properties file contents
cat ${WORKSPACE}/artifactory.properties

b。 使用以下命令添加构建后操作“将工件存档”:

“要归档的文件” = artifactory.properties

C。 在促销的“在其他项目上触发/调用程序”中,添加“预定义参数”,并带有:

PROMOTED_JOB_NAME=${PROMOTED_JOB_NAME}
PROMOTED_NUMBER=${PROMOTED_NUMBER}

在工作2中:

一种。 添加一个构建步骤“从另一个项目复制工件”:

“项目名称” = $ PROMOTED_JOB_NAME

'哪个版本'=特定版本

“内部版本号” = $ PROMOTED_NUMBER

'工件'= artifactory.properties

b。 添加一个构建步骤“注入环境变量”

“属性文件路径” = artifactory.properties

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM