鍍金池/ 教程/ Java/ 集成自動(dòng)化部署
集成自動(dòng)化部署
架設(shè) CI 服務(wù)器
探索用戶資源
SSH agent 轉(zhuǎn)發(fā)
使用評(píng)論
身份認(rèn)證基礎(chǔ)
管理部署密鑰
準(zhǔn)備開始
傳遞部署
遍歷分頁
整合者的最佳做法
數(shù)據(jù)渲染成圖表

集成自動(dòng)化部署

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)你 push 到倉庫的時(shí)候同時(shí)發(fā)送 deployment

自動(dòng)部署服務(wù)負(fù)責(zé)在你的分支接收到一個(gè) push 的時(shí)候創(chuàng)建一個(gè) deployment。接著,我們會(huì)建立服務(wù)去接收那些 deployment 事件信息并且在你的工程中處理它。

  1. 引導(dǎo)到你設(shè)置 deployment 的那個(gè)倉庫。

  2. 在你倉庫的右側(cè)邊欄, 點(diǎn)擊 Settings 。

  3. 在左邊,click Webhooks & Services 。

  4. 點(diǎn)擊 Add service,然后鍵入 “GitHub Auto-Deployment.”

  5. GitHub token 下面,粘貼一個(gè)你已經(jīng)創(chuàng)建的 access token 。里面至少有 repo 的范圍。要了解更多內(nèi)容,查看 “Creating an access token for command-line use.”

  6. Environments 下面,列出了一些環(huán)境供你選擇去將 deployment 發(fā)送進(jìn)去??梢允褂?你定義的任何字符串 去描述你的環(huán)境。默認(rèn)是 “production.”

  7. 如果你只是想建立成功通過連續(xù)測(cè)試的套件,請(qǐng)選擇 Deploy on status 。

  8. 如果你正在 Github 上運(yùn)行這個(gè)服務(wù), 你必須通過你設(shè)備的 endpoint URL

  9. 點(diǎn)擊 Add service 。

連接一個(gè) integrator 去部署

為了實(shí)現(xiàn)我們的 deployments,我們將使用 Heroku 作為示例服務(wù)器。

  1. 引導(dǎo)到你設(shè)置 deployment 的那個(gè)倉庫。

  2. 在你倉庫的右側(cè)邊欄, 點(diǎn)擊 Settings 。

  3. 在左邊,click Webhooks & Services 。

  4. 點(diǎn)擊 Add service,然后鍵入 “Heroku.”

  5. 將你需要部署的 GitHub 倉庫命名為 Heroku 應(yīng)用。

  6. 輸入你的 Heroku OAuth 令牌。你必須根據(jù) Heroku 的文檔說明來生成。

  7. 在 GitHub token,粘貼你先前使用的令牌。

  8. 點(diǎn)擊 Add service。

現(xiàn)在起,所有提交到你 master 分支的 commit ,包括和 pull request 進(jìn)行 merge 產(chǎn)生的,都會(huì)自動(dòng)向你的 Heroku 應(yīng)用觸發(fā)一個(gè) deployment。