gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:30:14 25 4
gpt4 key购买 nike

我试图让 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/directory )

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

对于下一个构建,假设是 1.2.3.5,您将创建一个新目录(名为 1.2.3.5),在构建结束时将您的工件移入其中,将其压缩并传输。
当您在目的地解压缩它时,您将拥有一个新目录 /path/to/artifact/directory/1.2.3.5 包含新构建的工件。

我知道这听起来令人困惑,但实际上很容易实现。

关于build-process - 如何让 Jenkins 将工件复制到动态目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5248597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com