2011-11-07 68 views
3

在TFS 2010上,我們設置了一個構建腳本,以便每4小時自動運行並部署到我們的測試環境。因此,構建定義的觸發器爲「滾動構建 - 在前一個構建完成之前累計簽入」,並勾選「不超過每[240]分鐘構建時間」複選框。我解釋這一點的方式是,如果一個構建在16:25發生,並且在接下來的30分鐘內(最後一個發生在16:52)有3個登記,那麼下一個構建將在20:25發生。TFS滾動構建似乎在週末跳過構建

我們看到的問題是,如果這一系列事件發生在星期五,那麼直到星期一上午纔會發生下一個觸發構建。我們在TFS自己的單獨虛擬機上有兩個構建代理,但所有計算機都是全天候運行的。

團隊中的任何人都沒有意識到會導致這種行爲,所以我們爲什麼會看到它。我們是否僅僅誤解了Rolling Build的含義,或者我們忘記檢查配置設置了嗎?

編輯:對於它的價值,構建&部署過程的全部通吃的90-120。所以當它還在建設時沒有發生任何檢查。

+0

聽起來很奇怪。只是爲了確定,如果在星期五以外的某個工作日發生同樣的情況,那麼這樣的情況會好嗎?生成機器週五晚上和週末工作,順便說一句:-) –

+0

@DatatLe同意。而且你的預期行爲在星期一至星期四是正確的,但星期五晚上似乎會拋出一些東西。週五晚上應該發生的構建直到週日晚上或週一早上纔會發生(沒有添加檢查來觸發它)。所有必需的機器都是24/7,並且據我所知,沒有辦法讓構建代理只在特定時間運行,這就是爲什麼這種行爲很奇怪。 –

+0

做一個實驗是值得的:在迭代中將任意一天設置爲銀行假期。現在是否會出現相同的效果? – pantelif

回答

3

Accumulate簽入意味着當您簽入變更集時,如果在240分鐘內沒有構建此構建定義,則TFS會自動對構建進行排隊。但是,如果不檢入變更集,則不會排隊。

構建應該在您寫入時觸發。星期六20:25之後的第一次登機後,第三次搭建應該在0:25之前建立。 :)

嘗試檢查更改集是否未檢入構建定義工作空間中隱藏的位置(或未檢入到未由構建定義工作空間映射的位置)。

+0

我不認爲「下一次構建應該在20:25構建之後的首次登機後觸發。」是正確的。在這種情況下,如果在16:25發生的構建在20:25之前完成,那麼下一個構建將在20:25開始。如果第一次構建在20:25之後完成,那麼每當它完成時,下一個構建將立即開始。 –

+0

你說得對。正確的是:「第三次生成應該在20:25之後的第一次簽到後在週六0:25之前觸發」:) – Ludwo

+0

其實我們看到的行爲是在16:25之後的任何簽入構建會在20點25分發生構建。不是20點25分以後的第一次入住。 –