我正在研究一个Maven/Jenkins/Artifactory,作为CI/发布过程的一种可能的解决方案。
我在Jenkins有一份工作--叫做MYJOB --负责为Artifactory构建和部署一个工件。现在,我需要手动运行的另一项工作,它将从Artifactory复制MYJOB的特定构建的工件,并将其放在某个地方(现在不太麻烦,但最终它将是另一台服务器)。
例如,假设build #123变绿了,现在我的QA团队希望将构建的工件部署到他们的环境中进行进一步的测试(其想法是在整个测试过程中保持该构件完整不变,然后将其标记为可发布的)。我希望他们能够输入'123‘到Jenkins作为作业参数,然后开始构建。
所以,我想我需要一个使用脚本来完成这个任务的自由风格的作业。
我的问题是:如何将先前MYJOB构建的编号传递给作业,以便从工件中获得正确的工件?
(欢迎实现我的目标的其他方法:)
发布于 2014-08-21 21:31:42
所以我让它起作用了。在定义了一个名为“REQ_ Build _NUMBER”的参数之后,我将以下代码放在Jenkins Freestyle构建配置的Build Step部分中:
SOMETHING=$(curl "http://MYARTIFACTORYLOCATION/artifactory/api/search/prop?build.number=$REQ_BUILD_NUMBER" | jq --raw-output '.results[0].uri')
echo $SOMETHING
SOMETHING_ELSE=$(curl $SOMETHING | jq --raw-output '.downloadUri')
echo $SOMETHING_ELSE
wget -N --directory-prefix=/var/lib/jenkins/artifacts/ $SOMETHING_ELSE
(注:我几乎不擅长shell脚本编写。我相信可以用一种更好的方式来完成)
编辑:这需要为命令行安装“jq”。
发布于 2014-08-21 18:22:17
为第二个作业创建参数化生成。QA团队可以在开始构建时放置版本号。这个内置号可以作为一个环境变量使用,可以在脚本中访问,然后脚本可以从存储库中检索包。
https://stackoverflow.com/questions/25437899
复制相似问题