Jenkins & subversion URL 部分变量来自作业名称

Jenkins & subversion URL with part variable from job name

我的工作名称如下:

BUILD--PROJECT--TEMPLATE1
BUILD--PROJECT--TEMPLATE2
BUILD--PROJECT--TEMPLATE3 

每个作业都使用 SCM 进行单独的颠覆 folder/project:

https://svn.domain.com/repos/project/template1/
https://svn.domain.com/repos/project/template2/
https://svn.domain.com/repos/project/template3/

创建新作业后,我们需要手动更新路径。

是否可以在 SCM 中使用来自作业名称的变量,例如:

BUILD--PROJECT--TEMPLATE1
https://svn.domain.com/repos/project/${template, 3rd parameter}/

你会如何解决它,有什么想法吗?

使用插件环境注入器插件和 EnvInject API 插件。按照手册配置它们。

在作业中 'general section' 勾选 "Prepare an environment for the run"

添加到 Groovy 脚本:

return [
JOB_TEMPLATE_NAME: JOB_NAME.split('-').last()
]

在您的 SCM 中,您将 URL 定义为:

https://svn.domain.com/repos/project/${JOB_TEMPLATE_NAME}

如果使用 SVN_REVISION 或 SVN_URL 全局变量,它们将会丢失。错误?

我的解决方法是:添加第一个构建步骤以执行 shell with:

echo "SVN_REVISION=$(svn info | awk '/^Revision:/{print }')" >env.properties

在第二个构建步骤中注入环境变量(插件)并将 'Properties File Path' 设置为 'env.properties' 在步骤 1 中创建的文件。 现在您可以在其他构建步骤中使用 SVN_REVISION。

希望对您有所帮助!

再见!