2017-02-21 48 views
0

DevOps爲我們的團隊配置了一個windows slave作爲構建機器,並且我注意到他在Jenkins master中安裝了TFS插件,但沒有安裝slave machine。然而,我們確實在從機中獲得了源代碼。 我不知道下載工作流程如何工作? :Jenkins master如何指示slave從TFS下載源代碼

  • 1)主要下載源代碼,然後將代碼轉移到從機 機器?
  • 2)或Master連接到TFS服務器後,它只是指示從機直接從TFS服務器下載它?

請解釋一下這個機制。如果是2),那麼從設備中安裝什麼才能夠從TFS下載。

回答

0

VCS插件通常以這種方式工作:

  1. 主配置爲使用某些VCS,並與一些設置
  2. 從準備了一些二進制文件能夠執行下載指令

後一個構建開始,大多數步驟將通過其二進制文件在從站上執行,包括下載源代碼。這要求slave具有VCS二進制文件(例如,git)並訪問目標存儲庫(對於git,它可能是ssh密鑰)。

我現在手頭沒有任何TFS的奴隸,但這個過程非常相似。我想如果你檢查構建的Console output,你會看到二進制文件的完整路徑,用於TFS下載的頂部。

這裏是這樣的輸出的一個樣本的git:

Building remotely on slave01 in workspace /jenkins-workspace 
> /bin/git rev-parse --is-inside-work-tree # timeout=10 
Fetching changes from the remote Git repository 
> /bin/git config remote.origin.url [email protected]:ORG/repo.git # timeout=10 
+0

以下是我的輸出,並且我無法分辨誰(主控或從屬)下載它-------在工作區C中的BuildSlaveV1(EUDCCESBUILDVM)(CES)上進行遠程構建:\ J \ workspace \ CES_Team \ YuTest2在'$/Client/000MSBuild'查詢'D2017-02-21T19:57:56Z'
查詢結果是:Changeset#32379' 41Z」。
從http://10.64.128.57:8080/tfs/CES列出工作區... –

+0

這裏沒有什麼真正有用的。也許TFS插件不會給我們那麼詳細的輸出。 – doz10us

0

建立詹金斯和TFS之間的通信,需要安裝Team Foundation Server Plugin並將其配置爲this article狀態。通過這種方式,詹金斯可以從TFS獲得資源。

每個從站運行一個單獨的程序,稱爲「從屬代理」,從屬代理和Jenkins主站需要建立一個雙向通信鏈接。 要在Jenkins中設置奴隸/節點,您可以參考this article。如果所有設置都正確輸入,則節點從機將聯機並與Jenkins主機通信。

+0

我剛剛讀完他們。作爲具體的狀態,在安裝TFS插件(4.0)後,Jenkins從TFS服務器下載源文件並將其發送到從機。在4.0之前,詹金斯奴隸將需要安裝tf.exe等來下載源文件本身。如果我的理解是正確的,那麼實際上安裝TFS插件4.0,詹金斯大師會做很多下載工作,奴隸只會做建設工作。我真的認爲詹金斯大師不應該做任何實際的下載工作,而只是委託給奴隸。 –

+0

你的理解是正確的。 –