使用 GitHub Actions 为 C# (.NET) 项目实现 CI/CD:分步指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

引言:CI/CD 为何对 C# (.NET) 项目至关重要



现代软件开发离不开自动化。手动进行构建、测试和部署流程不仅速度缓慢,而且容易出错。对于使用 .NET 生态系统的 C# 开发者而言,实施 CI/CD(持续集成/持续部署) 实践已成为行业标准。



GitHub Actions 是一款功能强大且灵活的自动化工作流工具,内置于 GitHub 中。它允许您创建能响应仓库事件(如推送、拉取请求创建、发布等)的管道(工作流)。在本文中,我们将详细介绍如何使用 GitHub Actions 为基于 .NET 的 C# 项目设置一个完整的 CI/CD 管道。



您将学习如何:

  • 设置自动项目构建。
  • 运行单元测试(例如 xUnit 或 NUnit)。
  • 发布构建产物。
  • 自动部署应用程序(例如部署到 Azure、Docker Hub 或服务器)。


1. GitHub Actions 基础:工作流、作业和步骤



在编写代码之前,让我们先了解 GitHub Actions 的基本概念。



  • 工作流: 这是一个自动化流程,您在 .github/workflows 文件夹内的 YAML 文件中定义它。工作流由某个事件(例如,推送到主分支)触发。
  • 作业: 在单个运行器(虚拟机)上执行的一组步骤。作业可以按顺序运行,也可以并行运行。
  • 步骤: 一条单独的命令或操作。这可以是运行脚本、安装依赖项或使用市场中的预建操作。
  • 运行器: 执行您工作流的服务器。GitHub 提供免费的运行器(Ubuntu、Windows、macOS),或者您也可以自行托管。


对于 .NET 项目,我们将使用现成的操作,例如 actions/checkout(用于克隆仓库)和 actions/setup-dotnet(用于安装 .NET SDK)。



2. 设置基本 CI 管道:构建与测试



让我们创建第一个工作流。为此,请在仓库根目录下创建一个名为 .github/workflows 的文件夹,并在其中创建一个名为 dotnet-build.yml 的文件。



以下是一个用于构建和测试 C# 项目的最小 YAML 文件:



name: .NET Build and Test

on: push: branches: [ main, develop ] pull_request: branches: [ main ]

jobs: build-and-test: runs-on: ubuntu-latest

steps: - name: Checkout repository uses: actions/checkout@v4

- name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: '8.0.x' # Specify your .NET version

- name: Restore dependencies run: dotnet restore

- name: Build run: dotnet build --no-restore --configuration Release

- name: Run tests run: dotnet test --no-build --configuration Release --verbosity normal


代码解析:

  • name: 工作流的名称,将显示在 GitHub 中。
  • on: 定义触发器。在我们的案例中,是对 main 和 develop 分支的推送和拉取请求。
  • jobs: 包含一个名为 build-and-test 的作业,该作业在 ubuntu-latest 上运行。
  • steps: 一系列操作:克隆代码、安装 .NET 8.0、还原 NuGet 包、以 Release 配置进行构建以及运行测试。


将此文件推送到仓库后,GitHub Actions 将自动运行该工作流。您将看到绿色对勾或红色叉号出现在

博客

书籍推荐