在本快速入門中,您將瞭解如何建立 GitHub 工作流程,以從原始程式碼發佈 .NET 應用程式。 自動將 .NET 應用程式從 GitHub 發佈至目的地稱為持續部署 (CD)。 有許多可能的目的地可以發佈應用程式,在本快速入門中,您會發佈至 Azure。
先決條件
新增發佈設定檔
若要將應用程式發佈至 Azure,請開啟應用程式 App Service 實例的 Azure 入口網站。 在資源 概觀中,選取取得發佈設定檔並將*.PublishSetting檔案儲存到本地。
警告
發行設定檔包含敏感資訊,例如用於存取 Azure App Service 資源的認證。 應始終非常謹慎地對待這些信息。
在 GitHub 存放庫中,導覽至 [設定],然後從左側導覽功能表中選取 [密碼]。 選取 [新增存放庫密碼],以新增密碼。
輸入 AZURE_PUBLISH_PROFILE 作為 名稱,並將發佈設定檔中的XML內容貼到 值 文字區域。 選取 [新增祕密]。 如需詳細資訊,請參閱 加密密碼。
建立工作流程檔案
在 GitHub 存放庫中,將新的 YAML 檔案新增至 .github/workflows 目錄。 選擇一個有意義的文件名,該文件名將清楚地表明工作流程的目的。 如需詳細資訊,請參閱 工作流程檔案。
這很重要
GitHub 要求將工作流程組合檔案放在 .github/workflows 目錄中。
工作流程檔案通常會透過 定義 jobs.<job_id>/steps[*]一或多個 GitHub Action 的組合。 如需詳細資訊,請參閱 GitHub Actions 的工作流程語法。
建立一個名為 publish-app.yml的新文件,將以下YML內容複製並貼上到其中:
name: publish
on:
push:
branches: [ production ]
env:
AZURE_WEBAPP_NAME: DotNetWeb
AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Install dependencies
run: dotnet restore
- name: Build
run: |
cd DotNet.WebApp
dotnet build --configuration Release --no-restore
dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true
- name: Test
run: |
cd DotNet.WebApp.Tests
dotnet test --no-restore --verbosity normal
- uses: azure/webapps-deploy@v2
name: Deploy
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }}
package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'
在上述工作流程組合中:
定義了
name: publish名稱,並且「發佈」將會在工作流程狀態標誌中出現。name: publishon節點表示觸發工作流程的事件:on: push: branches: [ production ]- 當
push發生在production分支上時觸發。
- 當
節點
env定義具名的環境變數(即 env var)。env: AZURE_WEBAPP_NAME: DotNetWeb AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use- 環境變數
AZURE_WEBAPP_NAME會指派值DotNetWeb。 - 環境變數
AZURE_WEBAPP_PACKAGE_PATH會指派值'.'。 - 環境變數
DOTNET_VERSION會指派值'6.0.401'。 稍後會參考環境變數來指定dotnet-version的 GitHub Actionactions/setup-dotnet@v3。
- 環境變數
jobs節點會建置工作流程要採取的步驟。jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup .NET Core uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Install dependencies run: dotnet restore - name: Build run: | cd DotNet.WebApp dotnet build --configuration Release --no-restore dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true - name: Test run: | cd DotNet.WebApp.Tests dotnet test --no-restore --verbosity normal - uses: azure/webapps-deploy@v2 name: Deploy with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }} package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'- 有一個名為
publish的作業將在最新版本的 Ubuntu 上運行。 -
actions/setup-dotnet@v3GitHub Action 用來設定指定版本的 .NET SDK,該版本是由環境變數DOTNET_VERSION設定。 - 執行命令
dotnet restore。 - 執行命令
dotnet build。 - 命令
dotnet publish被呼叫。 - 呼叫命令
dotnet test。 -
azure/webapps-deploy@v2GitHub Action 會使用指定的publish-profile和package來部署應用程式。- 指派給
publish-profile的值是來自AZURE_PUBLISH_PROFILE存放庫密碼。
- 指派給
- 有一個名為
建立工作流程狀態徽章
GitHub 存放庫的常見命名法是在存放庫目錄的根目錄中有一個 README.md 檔案。 同樣,報告各種工作流程的最新狀態也很好。 所有工作流程都可以產生狀態徽章,這些徽章在 README.md 檔案中具有視覺吸引力。 若要新增工作流程狀態徽章:
從 GitHub 存放庫中,選取 [動作] 導覽選項。
所有存放庫工作流程都會顯示在左側,選取所需的工作流程和省略符號 (...) 按鈕。
- 省略符號 (...) 按鈕會展開所選工作流程的功能表選項。
選取 建立狀態徽章 功能表 選項。
選取 [複製狀態徽章 Markdown ] 按鈕。
將 Markdown 貼到 README.md 檔案中,儲存檔案,提交並推送變更。
如需詳細資訊,請參閱 新增工作流程狀態徽章。
發佈工作流程狀態徽章範例
| 傳球 | 失敗 | 無狀態 |
|---|---|---|
|
|
|
|