[英]Deploy Github release to Node server with webhooks
我已經在Github上為存儲庫設置了一個Webhook。 當我在Github中創建新版本時,我的Webhook接收器(在Node服務器上)會收到一個請求。 它的工作方式如下(使用Express):
app.post("/", function(req, res){
//request is not a github event
if (req.headers["x-github-event"] != "release") return;
//request is a pre-release
else if (req.body.release.prerelease) deployToDev();
//request is full release
else if (!req.body.release.prerelease) deployToLive();
});
如您所見,它首先檢查請求是否包含github事件的標頭,其標值為release
。 如果一切都很好,它將檢查它是預發行版還是完整發行版,並觸發要部署到開發人員或現場的功能。
Webhook很好用,但是我正在努力尋找如何實際部署文件的方法。 是否使用某種FTP連接或Shell腳本執行此操作? dev和live目錄與webhook接收器位於同一服務器上。 做這個的最好方式是什么?
如果您已經在使用github,則一種簡單的部署方法是在目標計算機上簽出代碼。
一個折衷是目標計算機需要安裝git並具有從存儲庫讀取的憑據。
另一種選擇是執行您在問題中建議的操作:使用上面的節點程序下載存檔,然后使用選擇的協議將其傳輸到要部署的計算機上:FTP / ssh / rsync / scp等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.