我已经将一个工件归档为构建的最后一步,它可以如下所示使用:https://xxx.ci.cloudbees.com/job/xxx/52/artifact/target/xxx-1.2.1-SNAPSHOT-r8304-20130807-1507-app.zip https://xxx.ci.cloudbees.com/job/xxx/52/artifact/target/xxx-1.2.1-SNAPSHOT-r8304-20130807-1507-app.zip
在我的推广过程中如何轻松访问该工件?请注意,我需要访问特定的版本,而不是最新的成功版本。
升级过程的目标是将工件复制到 S3,我们的部署作业将从那里进一步处理它。因此,我可能会将构建 #52 提升为开发(将其复制到特定的 S3 存储桶),稍后将构建 #50 提升为生产,依此类推。
理想情况下,我可以访问 shell 脚本中的工件来重命名文件等。是否有环境变量来访问构建的存档工件,但我找不到该工件,或者应该如何完成?$BUILD_URL
and $JOB_URL
已经特定于升级过程,并且不指向升级作业中 shell 脚本中的构建本身。
使用复制工件插件,我只能在升级过程中从其他版本复制工件,而我不需要这样做。
我相信我已经找到了解决方案。
Summary
- 不使用由固定链接指定
- Use 具体构建并将内部版本号设置为
${PROMOTED_NUMBER}
解决方案
先决条件
- The 复制神器插件 https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin必须安装。
- Archive the artifacts you want the promotions to access
- In 构建后操作添加动作归档工件并设置要存档的文件到您希望促销活动访问的任何内容。
- Do not discard old artifacts
- 在作业配置中,取消选择丢弃旧版本或者确保它的设置将在您想要推广您的构建时保留工件。
促销设置:
像往常一样使用名称和标准设置您的升级版本。
在操作部分添加操作从另一个项目复制工件,并设置这些值。
- 项目名称:
${PROMOTED_JOB_NAME}
- 哪个版本:特定版本
- 内部版本号:
${PROMOTED_NUMBER}
- 要复制的工件:
path/to/your/artifacts/**
- Target:
${BUILD_TAG}
然后添加您真正想做的操作。例如添加动作归档工件以保存文物。请记住在路径前加上前缀${BUILD_TAG}
e.g. ${BUILD_TAG}/path/to/your/artifacts/**
说明原因的注释
复制文物
您现在可能已经知道,升级不应期望能够访问构建工作区的内容。它可能在不同的服务器上执行,并且可能根本无法访问任何工作区或来自较旧或较新版本的工作区。因此,需要将要使用的工件复制到当前工作区。
这也是为什么Target值已设置。工作空间可能会被其他构建或促销活动污染。将目标设定为${BUILD_TAG}
通过创建升级过程特有的文件夹,防止与工作区中已有的文件发生任何冲突。
${PROMOTED_*} 变量
正如您所说,正常构建变量指的是升级过程本身,但是升级构建插件定义了一些环境变量 https://wiki.jenkins-ci.org/display/JENKINS/Promoted+Builds+Plugin#PromotedBuildsPlugin-AvailableEnvironmentVariables而是指实际构建。
固定链接
在詹金斯上下文中永久链接 https://github.com/jenkinsci/jenkins/blob/84c76253862a2f36f813a7aa45b77d99c1616be4/core/src/main/java/hudson/model/PermalinkProjectAction.java仅指指向某种类型的最新版本或最新促销的特殊链接。这就是为什么您将始终获得最新版本的原因
在我的 Jenkins 版本中,下拉列表被文本框替换。将 URL 写入特定构建,例如http://jenkins/job/myjob/59/
is 未能识别 https://github.com/jenkinsci/jenkins/blob/84c76253862a2f36f813a7aa45b77d99c1616be4/core/src/main/java/hudson/PermalinkList.java作为特殊的永久链接之一,并且复制将会因此失败 https://github.com/jenkinsci/copyartifact-plugin/blob/b33ceb5d1cd5f59ea4e4b7248acdf74aec9be9a2/src/main/java/hudson/plugins/copyartifact/PermalinkBuildSelector.java.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)