2012-09-27 49 views
1

我试图在4种不同的配置中构建一个软件项目:Windows 7机器上的32位调试,32位版本,64位调试,64位调试。我们的设置目前涉及到主控器(0个执行器)和2个每个都有2个执行器的从器件。一个奴隶是一台Mac,另一个是Windows机器 - 我现在只是试图在Windows上构建。Jenkins分布式构建配置

我的配置矩阵是设置这样的:

  • 第1轴:用户自定义的轴,名称:建筑,值:32位,64位
  • 第2轴:奴隶,名称:OS,我选择了用户定义的轴名称:BuildType,值:调试,释放

矩阵...

0123表示在Windows机器
  • 第3轴节点
    +----------------------+-------+--------+ 
    | Configuration Matrix | 32bit | 64-bit | 
    +----------------------+-------+--------+ 
    | Debug    | X | X | 
    +----------------------+-------+--------+ 
    | Release    | X | X | 
    +----------------------+-------+--------+ 
    

    它能够成功检出Git中的源代码到工作区中的所有4个构建文件夹中。然而,定义构建步骤是我迷失方向的地方。我选择“执行Windows批处理命令”。这就是我迷失的地方......我在盒子里指定了什么,所以它知道要调用哪个批处理文件,基于它的4个版本中的哪一个?

    我认为它是与詹的环境变量,但我设想做这样的事情:“执行Windows批处理命令”

    if (Windows Slave Machine) 
    { 
        if (Architecture == 32bit) 
        { 
         if (BuildType == debug) 
         { 
          //Call win_32bit_debug.bat 
         } 
         else 
         { 
          //Call win_32bit_release.bat 
         } 
        } 
        else 
        { 
         if (BuildType == debug) 
         { 
          //Call win_64bit_debug.bat 
         } 
         else 
         { 
          //Call win_64bit_release.bat 
         } 
        } 
    } 
    
  • +0

    为什么不直接创造就业岗位4其中调用不同的批处理文件?将所有这些都归结为单一的工作似乎是不必要的复杂。 – CIGuy

    +0

    我明白。但我觉得维护单独的工作(特别是因为这可以扩展到24个配置)将会很难使用,特别是因为除了执行哪个批处理文件外,所有设置都是相同的。 – user869525

    +0

    您是否通过CI模型在每次提交之后运行它,或者这是由用户运行的手动作业? – CIGuy

    回答

    0

    你不必写这篇日志里面if语句 只是试图利用你已经这样定义的变量:

    win_%Architecture%_%BuildType%.bat