快速入門:建立建置驗證 GitHub 工作流程
在本快速入門中,您將了解如何建立 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: build
on
節點表示觸發工作流程的事件: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@v3
GitHub 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@v3
GitHub 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 檔案,儲存檔案、認可並推送變更。
如需詳細資訊,請參閱新增工作流程狀態徽章。
範例建置工作流程狀態徽章
通過 | 失敗 | 無狀態 |
---|---|---|