依赖Jenkins job dsl脚本中的其他文件

时间:2016-04-18 19:58:11

标签: jenkins-job-dsl

我在我的作业dsl文件中有一些大的bash脚本,我声明为

String script = '''
  # large script
'''

并从shell方法

调用它
shell(script)

但是,我想将脚本分解为shell文件。我试着宣布

String script = new File('script.sh').text

但执行jenkins job dsl脚本的作业似乎没有找到该文件,实际上我不确定它甚至从哪个位置执行。

1 个答案:

答案 0 :(得分:1)

使用readFileFromWorkspace从作业工作区读取文件的内容。

路径是相对于工作区根目录指定的。

上面关于链接的API文档的第二个示例是针对批处理文件的,但是用shell替换批处理,并且您有针对您的案例的解决方案。

def runScript = readFileFromWorkspace('script.sh')
job('example-2') {
    steps {
        shell(runScript)
    }
}