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