在Hudson中,如何在给定单个参数的情况下设置多个环境变量?

rou*_*tic 1 hudson parameterized environment-variables

我想在Hudson中设置一个参数化构建,只需要一个参数 - 要创建的构建类型(QA,Stage,Production).但是,每个构建都需要设置几个不同的环境变量.像(伪代码)的东西:

if ${CONFIG} == "QA" then
    ${SVN_PATH} = "branches/dev"
    ${BUILD_CONFIG} = "Debug"
    # more environment variables...
else if ${CONFIG} == "Production" then
    ${SVN_PATH} = "trunk"
    ${BUILD_CONFIG} = "Release"
    # more environment variables...
else # more build configurations...
end if
Run Code Online (Sandbox Code Playgroud)

我们的构建中有无数的步骤 - 从subversion中提取,然后运行MSBuild命令,DOS批处理文件和Powershell脚本的组合.

我们通常从Hudson接口安排我们的构建,并且我希望参数条目尽可能地防止出现.

有没有办法做到这一点?

Pet*_*tze 6

既然你为发布做了很多事情,那么如何编写Hudson之外的所有步骤.您可以使用ant,批处理文件或您喜欢的任何脚本语言.将该脚本放在scm中以获取版本控制.

亲的:

  • 你得到了Hudson的逻辑,因为Hudson只调用了脚本.
  • 您不需要创建需要在shell(全局变量)之间保持持久化的环境变量.
  • 您可以为每个环境使用配置/属性文件,您也应该将其放入版本控制中
  • 如果需要,可以在Hudson之外运行这些脚本
  • Hudson作业配置变得更容易
  • 你没有改变全局环境变量的副作用.您应该始终尝试创建不会更改任何全局设置的作业,因为这总是会带来麻烦.