运维开发网

build-process – 如何让jenkins将工件复制到动态目录?

运维开发网 https://www.qedev.com 2020-05-09 12:19 出处:网络 作者:运维开发网整理
我正在尝试让Jenkins使用scp插件将构建的工件复制到另一台服务器上的存档目录中. 理想情况下,我希望能够根据构建版本使目标成为动态,因此结果将像/ builds /< build version> / 对于像1.2.3.4这样的构建版本,它看起来像: /builds/1.2.3.4/ 从阅读scp插件页面看,它看起来不可能,但我想这里有人可能已经弄明白了. 有没有办法做到这一点? 将文件名中
我正在尝试让Jenkins使用scp插件将构建的工件复制到另一台服务器上的存档目录中.

理想情况下,我希望能够根据构建版本使目标成为动态,因此结果将像/ builds /< build version> /

对于像1.2.3.4这样的构建版本,它看起来像:

/builds/1.2.3.4/

从阅读scp插件页面看,它看起来不可能,但我想这里有人可能已经弄明白了.

有没有办法做到这一点?

将文件名中嵌入的版本号的工件放在一个目录中是否更好?

就像你说的,我不认为scp插件可以直接做到.但是,可能有一种解决方法.

在您的构建中,您可以使用$BUILD_NUMBER(或%BUILD_NUMBER%,视情况而定 – > Linux vs Windows)访问构建号.

在任何情况下,作为脚本的一部分,您可以创建一个名为$BUILD_NUMBER的目录,因此:

mkdir -p $BUILD_NUMBER

-要么-

md%BUILD_NUMBER%

因此,例如,新目录将是/path/to/workspace/1.2.3.4

构建完成后,在脚本结束时,创建上面的目录,将工件移入其中,然后将目录tar / zip起来.

使用此tar / zip文件作为工作的工件.

使用scp插件将此工件传输到目标计算机,并在那里解压缩/解压缩(假设在/ path / to / artifact /目录中)

你将拥有的是/path/to/artifact/directory/1.2.3.4.

对于下一个版本,假设1.2.3.5,您将创建一个新目录(名为1.2.3.5),在构建结束时将工件移动到其中,然后将其压缩并传输.

当你在目的地解压缩它时,你将有一个新目录/path/to/artifact/directory/1.2.3.5,其中包含新构建的工件.

我知道这听起来很混乱,但实际上很容易实现.

0

精彩评论

暂无评论...
验证码 换一张
取 消