代码之家  ›  专栏  ›  技术社区  ›  busy

Jenkins和subversion URL,其中部分变量来自作业名

  •  1
  • busy  · 技术社区  · 7 年前

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

    每个作业都使用SCM对单独的文件夹/项目进行subversion:

    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}/
    

    你会怎么解决这个问题,有什么想法吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   pkudel4    7 年前

    使用插件环境注入器插件和环境API插件。按照手册中的说明进行配置。

    在作业“常规部分”内,勾选“为运行准备环境”

    添加到Groovy脚本:

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

    在SCM中,您定义URL如下:

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

    如果使用SVN\u修订或SVN\u URL全局变量,它们将丢失。缺陷

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

    在第二个构建步骤中,注入环境变量(插件),并将“Properties File Path”设置为“env”。在步骤1中创建的属性文件。 现在,您可以在其他构建步骤中使用SVN_修订版。

    希望这有帮助!

    再见!