快速入门:创建生成验证 GitHub 工作流
本快速入门介绍如何创建 GitHub 工作流来验证 .NET 源代码在 GitHub 中的编译。 编译 .NET 代码是帮助确保代码更新质量的最基本验证步骤之一。 如果代码无法编译(或生成),则很显然这是一种警示,它很清楚地表明代码需要修复。
先决条件
- 一个 GitHub 帐户。
- .NET 源代码存储库。
创建工作流文件
在 GitHub 存储库中,将新的 YAML 文件添加到 .github/workflows 目录。 选择一个有意义的文件名,这将清楚地指示工作流要执行的操作。 有关详细信息,请参阅工作流文件。
重要
GitHub 要求将工作流组合文件放置在 .github/workflows 目录中。
工作流文件通常通过 jobs.<job_id>/steps[*]
定义一个或多个 GitHub Action 的组合。 有关详细信息,请参阅 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 Action 的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
的操作系统名称。matrix/os
中每个值的name
和runs-on
元素都是动态的。 这将在最新版本的 Ubuntu、Windows 和 macOS 上运行。actions/setup-dotnet@v3
GitHub 操作需要使用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 Actions 上下文中使用。
创建工作流状态徽章
GitHub 存储库有一个 README.md 文件,位于存储库目录的根目录下。 同样,最好报告各种工作流的最新状态。 所有工作流都可以生成一个状态徽章,它在 README.md 文件中具有视觉吸引力。 若要添加工作流状态徽章,请执行以下操作:
从 GitHub 存储库中选择“Actions”导航选项。
所有存储库工作流都显示在左侧,选择所需的工作流和省略号 (...) 按钮。
- 省略号 (...) 按钮展开所选工作流的菜单选项。
选择“创建状态徽章”菜单选项。
选择“复制状态徽章 Markdown”按钮。
将 Markdown 粘贴到 README.md 文件中,保存文件,提交并推送更改。
有关详细信息,请参阅添加工作流状态徽章。
生成工作流状态徽章示例
通过 | 失败 | 无状态 |
---|---|---|