Github continuous deployment (CD) 最佳实践
About continuous deployment
您可以使用 GitHub 操作直接在 GitHub 存儲庫中創(chuàng)建自定義持續(xù)部署 (CD) 工作流。
About continuous deployment
持續(xù)部署 (CD) 是使用自動化來發(fā)布和部署軟件更新的做法。作為典型 CD 流程的一部分,代碼會在部署前自動構建和測試。
持續(xù)部署通常與持續(xù)集成相結合。有關持續(xù)集成的更多信息,請參閱“關于持續(xù)集成”。
About continuous deployment using GitHub Actions
您可以設置 GitHub 操作工作流來部署您的軟件產(chǎn)品。為了驗證您的產(chǎn)品是否按預期工作,您的工作流程可以在您的存儲庫中構建代碼并在部署之前運行您的測試。
您可以將 CD 工作流配置為在 GitHub 事件發(fā)生時(例如,將新代碼推送到存儲庫的默認分支時)、按設定的計劃、手動或在使用存儲庫調(diào)度 Webhook 發(fā)生外部事件時運行。有關何時可以運行工作流的更多信息,請參閱“觸發(fā)工作流的事件”。
GitHub Actions 提供的功能可讓您更好地控制部署。例如,您可以使用 environments 要求批準作業(yè)才能繼續(xù)、限制哪些分支可以觸發(fā)工作流或限制對機密的訪問。您可以使用并發(fā)將 CD 管道限制為最多一個正在進行的部署和一個待處理的部署。有關這些功能的更多信息,請參閱“使用 GitHub 操作進行部署”和“使用環(huán)境進行部署”。
Using environments for deployment
您可以使用 protection rules 和 secrets 配置環(huán)境。 在運行或訪問環(huán)境的 secrets 之前,引用環(huán)境的工作流作業(yè)必須遵循環(huán)境的任何保護規(guī)則。
什么是 environments
環(huán)境用于描述一般部署目標,如生產(chǎn)、暫存或開發(fā)。 當 GitHub Actions 工作流部署到環(huán)境時,環(huán)境會顯示在存儲庫的主頁上。有關查看環(huán)境部署的更多信息,請參閱“查看部署歷史記錄”。
您可以使用保護規(guī)則和 secrets 配置環(huán)境。 當工作流作業(yè)引用環(huán)境時,在所有環(huán)境保護規(guī)則都通過之前,作業(yè)不會啟動。在所有環(huán)境保護規(guī)則都通過之前,作業(yè)也無法訪問環(huán)境中定義的機密。
Environment protection rules
環(huán)境保護規(guī)則要求通過特定條件才能繼續(xù)進行引用環(huán)境的作業(yè)。您可以使用環(huán)保規(guī)則來要求手動審批、延遲作業(yè)或?qū)h(huán)境限制為某些分支機構。
Required reviewers
使用必需的審閱者來要求特定人員或團隊批準引用環(huán)境的工作流作業(yè)。您最多可以列出六個用戶或團隊作為審閱者。審閱者必須至少具有對存儲庫的讀取權限。 只有一名所需的審閱者需要批準作業(yè)才能繼續(xù)進行。
Environment secrets
存儲在環(huán)境中的機密僅可用于引用該環(huán)境的工作流作業(yè)。 如果環(huán)境需要批準,則在所需的審閱者之一批準之前,作業(yè)無法訪問環(huán)境機密。
Using an environment
工作流中的每個作業(yè)都可以引用一個環(huán)境。在將引用環(huán)境的作業(yè)發(fā)送到運行程序之前,必須通過為環(huán)境配置的任何保護規(guī)則。 只有在將作業(yè)發(fā)送給運行程序后,作業(yè)才能訪問環(huán)境的機密。
當工作流引用環(huán)境時,環(huán)境將出現(xiàn)在存儲庫的部署中。 有關查看當前和以前部署的詳細信息,請參閱“查看部署歷史記錄”。
您可以為工作流程中的每個作業(yè)指定一個環(huán)境。 為此,添加一個 jobs. <job_id> .environment 鍵,后跟環(huán)境名稱。
例如,此工作流將使用稱為 production 的環(huán)境。
name: Deploymenton:push:branches:- mainjobs:deployment:runs-on: ubuntu-latestenvironment: productionsteps:- name: deploy# ...deployment-specific steps當上述工作流運行時,部署作業(yè)將遵循為生產(chǎn)環(huán)境配置的任何規(guī)則。 例如,如果環(huán)境需要審閱者,則作業(yè)將暫停,直到其中一位審閱者批準該作業(yè)。
您還可以為環(huán)境指定 URL。 指定的 URL 將顯示在存儲庫的部署頁面(通過單擊存儲庫主頁上的環(huán)境訪問)和工作流運行的可視化圖中。 如果拉取請求觸發(fā)了工作流,則 URL 還會在拉取請求時間線中顯示為“查看部署”按鈕。
How environments relate to deployments
當引用環(huán)境的工作流作業(yè)運行時,它會創(chuàng)建一個部署對象,并將環(huán)境屬性設置為您的環(huán)境名稱。 隨著工作流的進行,它還會創(chuàng)建部署狀態(tài)對象,其中 environment 屬性設置為您的環(huán)境名稱,environment_url 屬性設置為 environment 的 URL(如果在工作流中指定),以及 state 屬性設置為工作。
您可以通過 REST API 或 GraphQL API 訪問這些對象。 您還可以訂閱這些 webhook 事件。
總結
以上是生活随笔為你收集整理的Github continuous deployment (CD) 最佳实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海盗船单条 48GB DDR5 非二进制
- 下一篇: 华为m6屏幕供应商