快速入門:建立 GitHub 工作流程以發佈應用程式
在本快速入門中,您將瞭解如何建立 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/workflow 目錄內。
工作流程檔案通常會透過 jobs.<job_id>/steps[*]
定義一個或多個 GitHub Actions 的組合。 如需詳細資訊,請參閱 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
會定義名稱,"publish" 會出現在工作流程狀態徽章中。name: publish
on
節點表示觸發工作流程的事件: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'
。 稍後會參考環境變數,以指定actions/setup-dotnet@v3
GitHub Actions 的dotnet-version
。
- 環境變數
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@v3
GitHub Actions 可用來使用來自DOTNET_VERSION
環境變數指定的版本設定 .NET SDK。- 呼叫
dotnet restore
命令。 - 呼叫
dotnet build
命令。 - 呼叫
dotnet publish
命令。 - 呼叫
dotnet test
命令。 azure/webapps-deploy@v2
GitHub Action 會使用指定的publish-profile
和package
來部署應用程式。publish-profile
會從AZURE_PUBLISH_PROFILE
存放庫祕密被指派。
- 有一個名為
建立工作流程狀態徽章
GitHub 存放庫的常見命名法是讓存放庫目錄根目錄有一個 README.md 檔案。 同樣地,最好報告各種工作流程的最新狀態。 所有工作流程都可以產生狀態徽章,其在 README.md 檔案內視覺上具有吸引力。 若要新增工作流程狀態徽章:
從 GitHub 存放庫,選取 [動作] 瀏覽選項。
所有存放庫工作流程都會顯示在左側,選取所需的工作流程和省略符號 (...) 按鈕。
- 省略符號 (...) 按鈕會展開所選工作流程的功能表選項。
選取 [建立狀態徽章] 功能表選項。
選取 [複製狀態徽章 Markdown] 按鈕。
將 Markdown 貼上到 README.md 檔案,儲存檔案、認可並推送變更。
如需詳細資訊,請參閱新增工作流程狀態徽章。
範例發佈工作流程狀態徽章
通過 | 失敗 | 無狀態 |
---|---|---|