2013-04-10 61 views
1

我正在試驗Jenkins設置以改進我們的CI策略,該策略目前由一個Windows任務調度程序啓動的自動構建Studio腳本組成。我想要集成的源代碼是一個.NET解決方案,我試圖通過MSBuild構建。Jenkins沒有從Starteam檢出所有文件

由於我們的SCM,我們使用的StarTeam(訴10.4),目前我遇到問題時,詹金斯試圖文件簽出到工作區和編譯的解決方案。

有某些文件(它似乎始終是相同的),它沒有得到簽出在詹金斯的StarTeam插件。顯然,由於這些文件丟失,我無法使用Jenkins的CI。我沒有遇到與我們的自動構建Studio腳本有關的問題:在這裏,所有文件都被正確檢出。從我的角度來看,沒有被檢出的C#文件沒什麼特別的:它們在不同的項目中,包含不同類型的數據(一些winforms,一些接口),它們都是同樣的觀點,似乎已被添加到StarTeam中以同樣的方式等

的StarTeam中查詢日誌中詹金斯沒有透露任何。我不知道是否有某種調試模式可以用來追蹤問題的性質?

也許我應該補充說,詹金斯當前在我的臺式電腦(Win7)上運行,而我正在試驗一個設置。我使用默認位置 c:\ Program Files(x86)\ Jenkins \ Jobs \ JOB_NAME \ Workspace 來集成我的解決方案。

我希望有你們的可能對這個問題是什麼想法,因爲我真的想有一個更好的CI設置比我們目前有到位。

回答

1

我設法找出問題:顯然,在開發商之一我們的團隊有時會在將文件夾添加到StarTeam時設法更改文件夾的默認位置屬性。因此,我們不是使用與項目根目錄相關的位置來檢入文件,而是使用我們的存儲庫中的絕對路徑。

我能夠通過刪除原始位置中的文件(即,不在Jenkins作業文件夾中)來驗證這一點,然後觀察Jenkins結帳期間文件再次出現在其原始位置。真正導致我進一步調查的是,嘗試使用cmd-line實用程序從StarTeam中檢出文件,以將文件檢入到不同的位置。當這仍然沒有得到所有的文件檢出時,我認爲詹金斯不再被指責,而是其他事情是錯誤的。

我以前沒有注意到這一點的原因部分是由於我與StarTeam一點經驗,並且由於所有使用相同的映射和路徑在我們的發展環境,我們的團隊開發。因此,絕對路徑將文件放置在所有機器上的正確位置,因爲所使用的路徑是相同的。

+0

StarTeam有很多命令行選項可用於控制要檢出的內容,以及如果最終必須編寫自己的腳本來處理結帳,那麼可以使用這些選項。本文檔詳細介紹了它們:http://techpubs.borland.com/starteam/2009/en/ST_CmdTools_Help_en.pdf – 2013-04-23 18:09:08

0

實質上,StarTeam SDK在與任何外部應用程序集成時處理文件的簽出。你正在運行的客戶端10.4版本看起來已經過時了,所以如果不是整個客戶端,我會建議升級SDK版本。

StarTeam中具有較好的向前/向後兼容性,當涉及到客戶端/ SDK,所以你可以在理論上對現有的2008 R2客戶端安裝運行2009/2009R2 SDK。

就運行下面的語法內詹金斯調試模式,你可以在命令行中激活此:

java -Drally.debug="true" -jar jenkins.war --httpPort=9000

+0

感謝您提供有關如何調試Jenkins的信息。更新StarTeam是不可能的。我們組織中的下一步行動(SCM明智的做法)將是TFS,但我迫不及待想要實現這一目標,所以我選擇將Jenkins作爲「TFS-light」解決方案來實現CI服務器的體驗。 – llykke 2013-04-15 17:46:49

+0

嗨,是的工作目錄與替代工作目錄可能是一個很難理解的完全理解的元素。儘管能夠將文件檢出到另一個位置是一件好事,但如果您有一個團隊在相同的本地環境中部署StarTeam,則可能會導致問題。很高興你終於到了它的底部。 – GraemeD 2013-04-16 10:49:10

相關問題