2015-06-04 93 views
3

我正在嘗試使用Jenkins自動構建過程。如何讓Jenkins在遠程服務器上執行刪除

到目前爲止,我已經設法讓Jenkins從BitBucket構建一個項目,運行測試並使用通過SSH發佈插件將文件上傳到生產服務器。

當我從我的git倉庫中刪除文件時,我想要在遠程服務器上刪除這些文件。有幾種方法,我已經考慮過這樣做了。

  1. 擦除生產服務器上的所有文件,然後上傳最新的生成版本。

    • 對我來說似乎是一個不好的解決方案,因爲這會導致比我想要的更多的停機時間。
  2. 創建一個腳本,該腳本位於遠程服務器上,在新構建過程後清理這些文件。我需要從git(以某種方式?)找出該提交中刪除的文件是什麼。

  3. 不是讓Jenkin使用通過ssh插件發佈,而是將git安裝在生產服務器上,所以在成功構建之後,我們可以讓Jenkins(以某種方式?)將項目推送到git生產服務器。

這似乎是開發人員常見的任務,我覺得我在這裏錯過了一些東西。有沒有這方面的標準做法。

+0

你必須區分,如果這是一個Dev沙盒服務器,或生產現場機器。對於Production,始終從明確定義的包中進行部署,即刪除舊的,上傳新的。您可以配置各種'diffs'和'rsync'來上傳*差異。對於開發沙箱,在服務器中直接使用'git'沒有任何錯誤,並且在'git'中更改文件時更新它。 – Slav

+0

對於生產,您建議我應該刪除整個軟件包?目前Jenkins需要將近一個小時才能上傳,這是否正常? –

+1

正常?取決於您的包裝大小,網絡帶寬和使用的協議。 *如果「手動」完成,將*文件上傳到服務器的「正常」時間是什麼? – Slav

回答

0

也許回答這個問題已經太晚了,但我認爲其他人也在尋找這個答案。在開發中刪除文件後,我找到了解決方案來刪除生產服務器上的文件。
在Jenkins中,您使用rsync在dev和production之間同步文件。添加到這條線末端 - 刪除
,這將做詭計

相關問題