在本快速入門中,您將了解如何建立 GitHub 工作流程,以驗證 GitHub 中 .NET 原始程式碼的編譯。 編譯 .NET 程式碼是您可採取的其中一個最基本驗證步驟,以協助確保程式碼的更新品質。 如果程式碼未編譯 (或建置),則可輕鬆予以制止,而且應該已明確指出需要修正程式碼。
必要條件
- GitHub 帳戶。
- .NET 原始程式碼存放庫。
建立工作流程檔案
在 GitHub 存放庫中,將新的 YAML 檔案新增至 .github/workflows 目錄。 選擇有意義的檔案名稱,可清楚指出工作流程要執行的動作的名稱。 如需詳細資訊,請參閱工作流程檔案。
重要
GitHub 要求將工作流程組合檔案放在 .github/workflow 目錄內。
工作流程檔案通常會透過 jobs.<job_id>/steps[*] 定義一個或多個 GitHub Actions 的組合。 如需詳細資訊,請參閱 GitHub Actions 的工作流程語法。
建立名為 build-validation.yml 的新檔案,並將下列 YML 內容複製並貼入其中:
name: build
on:
push:
pull_request:
branches: [ main ]
paths:
- '**.cs'
- '**.csproj'
env:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
build:
name: build-${{matrix.os}}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-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: dotnet build --configuration Release --no-restore
在上述工作流程組合中:
name: build會定義名稱,而 "build" 將會出現在工作流程狀態徽章中。name: buildon節點表示觸發工作流程的事件:on: push: pull_request: branches: [ main ] paths: - '**.cs' - '**.csproj'- 在
main分支上發生push或pull_request時觸發,其中任何檔案變更結尾都會是 .cs 或 .csproj 副檔名。
- 在
env節點會定義具名環境變數 (env var)。env: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use- 環境變數
DOTNET_VERSION會高指派值'6.0.401'。 稍後會參考環境變數,以指定actions/setup-dotnet@v3GitHub Actions 的dotnet-version。
- 環境變數
jobs節點會建置工作流程進行所需的步驟。jobs: build: name: build-${{matrix.os}} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-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: dotnet build --configuration Release --no-restore有一個名為
build-<os>的單一作業,其中的<os>是來自strategy/matrix的作業系統名稱。name和runs-on元素對matrix/os中的每個值為動態。 這會在最新版本的 Ubuntu、Windows 和 macOS 上執行。actions/setup-dotnet@v3GitHub Action 需要使用來自DOTNET_VERSION環境變數的指定版本來設定 .NET SDK。(選擇性) 根據 .NET 工作負載,可能需要其他步驟。 在此範例中,會將其省略,但您可能需要安裝其他工具才能建置應用程式。
- 例如,使用預先 (AOT) 編譯來建置 ASP.NET Core Blazor WebAssembly 應用程式時,您必須先安裝對應的工作負載,再執行還原/建置/發佈作業。
- name: Install WASM Tools Workload run: dotnet workload install wasm-tools如需 .NET 的詳細資訊,請參閱
dotnet workload install。呼叫
dotnet restore命令。呼叫
dotnet build命令。
在此情況下,請將工作流程檔案視為代表各種應用程式建置步驟的組合。 許多 .NET CLI 命令可供使用,大部分命令都可用於 GitHub Action 的內容中。
建立工作流程狀態徽章
GitHub 存放庫的常見命名法是讓存放庫目錄根目錄有一個 README.md 檔案。 同樣地,最好報告各種工作流程的最新狀態。 所有工作流程都可以產生狀態徽章,其在 README.md 檔案內視覺上具有吸引力。 若要新增工作流程狀態徽章:
從 GitHub 存放庫,選取 [動作] 瀏覽選項。
所有存放庫工作流程都會顯示在左側,選取所需的工作流程和省略符號 (...) 按鈕。
- 省略符號 (...) 按鈕會展開所選工作流程的功能表選項。
選取 [建立狀態徽章] 功能表選項。
選取 [複製狀態徽章 Markdown] 按鈕。
將 Markdown 貼上到 README.md 檔案,儲存檔案、認可並推送變更。
如需詳細資訊,請參閱新增工作流程狀態徽章。
範例建置工作流程狀態徽章
| 通過 | 失敗 | 無狀態 |
|---|---|---|

