Delivering deployments 指南描述了如何建立一個(gè)服務(wù)去使用 Deployments API 輕松的從 Github 獲取你的代碼并投入工作中使用。但如果你不想為了獲取代碼而建立一個(gè)單獨(dú)的服務(wù),或者你只是想 merge 一些代碼,在不考慮兼容其它應(yīng)用的情況下部署它呢?
你可以使用 GitHub 自動(dòng)部署服務(wù)去接收任何對(duì)倉庫的修改,并且配置它部署集成。自動(dòng)部署服務(wù)基于兩個(gè)事件提供有效負(fù)載:當(dāng)一個(gè) push 發(fā)生或當(dāng) CI的狀態(tài)改變。
這里有一個(gè)過程示范圖:
+--------------------+ +--------+ +-----------+
| GitHub Auto-Deploy | | GitHub | | Heroku |
| Service | +--------+ +-----------+
+--------------------+ | |
| | |
| Create Deployment | |
|------------------------>| |
| | |
| | |
| | Deployment Event |
| |--------------------------------->|
| | |
| | Deployment Status (pending) |
| |<---------------------------------|
| | |
| | |
| | Deployment Status (success) |
| |<---------------------------------|
| | |
注意:自動(dòng)部署服務(wù)只從你的默認(rèn)分支獲取修改內(nèi)容,通常是 master
分支。
自動(dòng)部署服務(wù)負(fù)責(zé)在你的分支接收到一個(gè) push 的時(shí)候創(chuàng)建一個(gè) deployment。接著,我們會(huì)建立服務(wù)去接收那些 deployment 事件信息并且在你的工程中處理它。
引導(dǎo)到你設(shè)置 deployment 的那個(gè)倉庫。
在你倉庫的右側(cè)邊欄, 點(diǎn)擊 Settings 。
在左邊,click Webhooks & Services 。
點(diǎn)擊 Add service,然后鍵入 “GitHub Auto-Deployment.”
在 GitHub token 下面,粘貼一個(gè)你已經(jīng)創(chuàng)建的 access token 。里面至少有 repo 的范圍。要了解更多內(nèi)容,查看 “Creating an access token for command-line use.”
在 Environments 下面,列出了一些環(huán)境供你選擇去將 deployment 發(fā)送進(jìn)去??梢允褂?你定義的任何字符串 去描述你的環(huán)境。默認(rèn)是 “production.”
如果你只是想建立成功通過連續(xù)測(cè)試的套件,請(qǐng)選擇 Deploy on status 。
如果你正在 Github 上運(yùn)行這個(gè)服務(wù), 你必須通過你設(shè)備的 endpoint URL。
為了實(shí)現(xiàn)我們的 deployments,我們將使用 Heroku 作為示例服務(wù)器。
引導(dǎo)到你設(shè)置 deployment 的那個(gè)倉庫。
在你倉庫的右側(cè)邊欄, 點(diǎn)擊 Settings 。
在左邊,click Webhooks & Services 。
點(diǎn)擊 Add service,然后鍵入 “Heroku.”
將你需要部署的 GitHub 倉庫命名為 Heroku 應(yīng)用。
輸入你的 Heroku OAuth 令牌。你必須根據(jù) Heroku 的文檔說明來生成。
在 GitHub token,粘貼你先前使用的令牌。
現(xiàn)在起,所有提交到你 master
分支的 commit ,包括和 pull request 進(jìn)行 merge 產(chǎn)生的,都會(huì)自動(dòng)向你的 Heroku 應(yīng)用觸發(fā)一個(gè) deployment。