2016-08-10 44 views
0

我目前正在使用Teamcity將Web應用程序部署到Azure雲服務。我們通常使用PowerShell腳本部署到臨時插槽,然後在Azure門戶上進行手動交換(暫存到生產)。如何在x天后觸發構建鏈中的構建?

交換之後,我們通常會將舊生產部署中的Staging插槽保持活動幾天(如果需要恢復/撤銷部署),然後將其刪除 - 這是手動過程。

我正在使用Teamcity自動執行此過程。 我意的解決辦法是有一個TeamCity的構建踢部署構建已suceeded(的構建步驟的細節是無關緊要的,因爲我可能會再次使用PowerShell來刪除分段插槽)

該計劃關閉後x天指出我尋找到的TeamCity構建鏈,快照等依賴

我做了什麼至今

  • 通過部署構建配置和
  • 創建快照依賴正確創建構建鏈
  • 創建完成構建觸發 BuildChain

此刻,目前的辦法開球的相關的構建「刪除Azure的臨時網絡」(B)部署構建成功之後。但是,我希望這是在x天之後延遲的構建。

綜觀上述構建鏈,我想構建在上午07時31 13 - 8 - 2016運行(如果x = 3)

我已經調查附表觸發選項,以及,但我稍微失去了如何使用它來實現這一點。據我所知,使用cron表達式將導致構建不斷運行,這不是我想要的 - 我希望構建B只能執行一次。

回答

1

是的,這可以通過使用REST api來完成。

我已經做了一個小樣本,它應該傳達的基本步驟。這是一個PowerShell腳本,它將清除另一個生成配置上的觸發器(由腳本中的參數值確定),並添加一個啓動時間爲從當前時間起X天的計劃觸發器(由腳本中的參數值確定)

1)在腳本一個PowerShell步驟添加到主構建,在端部和運行add-scheduled-trigger作爲源代碼

enter image description here

2)更新參數值

  1. $BuildTypeId - 這是你想要觸發添加到

  2. $NumberOfDays配置的ID - 這是天數提前,你要安排

  3. 觸發還有爲admin /管理員嵌入在腳本=用戶名/密碼爲REST API

一個做到這一點,你應該可以看到創建了計劃的觸發認證/更新每次建立第一個配置時間

enter image description here

希望這有助於

+0

聽起來前途,就這還構建鏈的範圍內工作?我也被指向https://github.com/rhysgodfrey/team-city-delayed-finish-build-trigger來自一個同事 – Ahmad

+0

ooo不錯 - 我不知道插件存在。如果您有構建鏈設置,那麼TeamCIty會根據您爲依賴關係進行的設置來處理是否需要重新構建第一個配置。 –

+0

當我有機會並讓你知道它是如何工作的時,我會試試這個 – Ahmad

相關問題