Jenkins shell无法在种子DSL内生成Job

时间:2015-07-28 10:43:55

标签: shell groovy jenkins dsl jenkins-job-dsl

Groovy,Closures&詹金斯。

我创建了种子作业:

def Job1 = 'FromTemplate-testJob'
job {
    name Job1
    steps {
       shell( "echo Hello > out5.txt" )
       shell( "/c echo custard > op4.txt")
    }
}

按预期成功创建包含2个shell命令的子作业:

echo Hello > out5.txt
/c echo custard > op4.txt

但是,运行时,此创建的作业显然可以使用以下输出成功运行:

Started by user anonymous
Building in workspace C:\Program Files (x86)\Jenkins\jobs\FromTemplate-testJob\workspace
[workspace] $ C:\Windows\system32\cmd.exe -xe C:\Windows\TEMP\hudson3852539874278383422.sh
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Program Files (x86)\Jenkins\jobs\FromTemplate-testJob\workspace>[workspace] $ C:\Windows\system32\cmd.exe -xe C:\Windows\TEMP\hudson1697067517687695305.sh
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Program Files (x86)\Jenkins\jobs\FromTemplate-testJob\workspace>Finished: SUCCESS

但是,任何输出文件都不会在任何地方创建。 shell可执行文件定义为:

 C:\Windows\system32\cmd.exe

我不明白什么?

1 个答案:

答案 0 :(得分:2)

shell dsl命令被翻译为"执行shell"构建步骤,通常用于类Unix系统。您必须使用batchFile dsl命令,因此它将被转换为"执行Windows批处理命令"构建步骤,用于Windows:

php.ini