我在我的作业dsl文件中有一些大的bash脚本,我声明为
String script = '''
# large script
'''
并从shell
方法
shell(script)
但是,我想将脚本分解为shell文件。我试着宣布
String script = new File('script.sh').text
但执行jenkins job dsl脚本的作业似乎没有找到该文件,实际上我不确定它甚至从哪个位置执行。
答案 0 :(得分:1)
使用readFileFromWorkspace从作业工作区读取文件的内容。
路径是相对于工作区根目录指定的。
上面关于链接的API文档的第二个示例是针对批处理文件的,但是用shell替换批处理,并且您有针对您的案例的解决方案。
def runScript = readFileFromWorkspace('script.sh')
job('example-2') {
steps {
shell(runScript)
}
}