2016-04-18 41 views
1

我有我的工作,DSL文件的一些大的bash腳本,我聲明作爲依靠從詹金斯工作DSL腳本的其他文件

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

,並從shell方法調用它

shell(script) 

如何至少,我想將腳本分解成shell文件。我試着聲明

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

但是,執行詹金斯作業DSL腳本的工作似乎並沒有找到該文件,其實我不知道哪個位置它甚至執行。

回答

1

使用readFileFromWorkspace從作業工作區中讀取文件的內容。

該路徑是相對於工作區根指定的。

上述鏈接的API文檔中的第二個示例是針對批處理文件,但將批處理替換爲shell,並且您的解決方案適用於您的案例。

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

超級!奇蹟般有效! :) – Theodor