2014-06-25 43 views
6

我在看詹金斯的工作,並試圖理解它。執行shell命令框後,Jenkins中的工作目錄是什麼?

我在構建部分的執行shell命令框:

> mkdir mydir 
> cd mydir 
> 
> svn export --force https://example.com/repo/mydir . 

當詹金斯完成後執行該命令,並移動到下一個構建步驟,什麼是它的工作目錄? workspece-root/ or workspace-root/mydir

至於下一步,我有調用頂級Maven的目標(仍處於構建部分)。

我真正想知道的是:爲什麼執行成功?
這是因爲Jenkins在執行shell命令框後自動移回workspace-root/文件夾,還是因爲下一個作業是「頂級」作業,Jenkins因此變回workspace-root/

回答

10

每個build step是Jenkins產生的獨立過程。在build step內,它們不共享任何內容,既不包含當前目錄,也不共享任何設置/更改的環境變量。每個新的build step首先產生一個脫離父進程(運行Jenkins的進程)的新進程

這不是詹金斯「移回」到$WORKSPACE。這就是詹金斯丟棄了前一屆會議。

+0

它總是以$ WORKSPACE開始,然後呢?你能否指出我在正式文件中的一個部分解釋這一點? :) – Christian

+3

是的,總是'$ WORKSPACE'。大多數插件也總是相對於'$ WORKSPACE'。如果您單擊'execute shell'構建步驟右側的問號圖標,彈出幫助提及它相對於'$ WORKSPACE'執行 – Slav

0

我最近看到如果你打印CWD,我會得到Project_NAME。 E.g D:\ jenkins \ workspace \ My_Project

您可能正在運行的任何腳本都不會被找到。因此,在我們開始編寫腳本之前,我們可以做一個「CD路徑」。

相關問題