Skip to content
Go back

🚀从零开始,使用GitHub Actions和.NET构建CI/CD管道

Published:  at  12:00 AM

🚀从零开始,使用GitHub Actions和.NET构建CI/CD管道

什么是CI/CD?

在现代软件开发中,持续集成(Continuous Integration, CI)和持续交付(Continuous Delivery, CD)是提高新功能交付频率的重要方法。通过在开发工作流中添加自动化,CI/CD能显著减少手动工作,让您专注于软件创作,确保更快速和可靠的发布。

为什么选择GitHub Actions?

GitHub Actions 是一个完全免费且易于使用的自动化工具。它允许您创建工作流,以实现对每次代码提交的构建、测试和部署。以下是我们将要介绍的内容:

🛠️ 使用GitHub Actions实现持续集成

使用GitHub Actions,您可以轻松地为您的.NET项目创建持续集成工作流。例如,以下工作流将在代码提交到主分支时自动触发:

name: Build & Test 🧪

on:
  push:
    branches:
      - main

env:
  DOTNET_VERSION: "7.0.x"

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - name: Setup .NET 📦
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: ${{ env.DOTNET_VERSION }}
      - name: Install dependencies 📂
        run: dotnet restore WebApi
      - name: Build 🧱
        run: dotnet build WebApi --configuration Release --no-restore
      - name: Test 🧪
        run: dotnet test WebApi --configuration Release --no-build

🌐 部署到Azure的持续交付

通过GitHub Actions,实现自动化部署过程同样简单。以下是一个用于发布应用到Azure App Service实例的工作流:

name: Publish 🚀

on:
  push:
    branches:
      - main

env:
  AZURE_WEBAPP_NAME: web-api
  AZURE_WEBAPP_PACKAGE_PATH: "./publish"
  DOTNET_VERSION: "7.0.x"

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - name: Setup .NET 📦
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: ${{ env.DOTNET_VERSION }}
      - name: Build and Publish 📂
        run: |
          dotnet restore WebApi
          dotnet build WebApi -c Release --no-restore
          dotnet publish WebApi -c Release --no-build --output '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}'
      - name: Deploy to Azure 🌌
        uses: azure/webapps-deploy@v2
        with:
          app-name: ${{ env.AZURE_WEBAPP_NAME }}
          publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }}
          package: "${{ env.AZURE_WEBAPP_PACKAGE_PATH }}"

总结

通过引入CI/CD,您可以彻底改变您的开发流程,加快发布变更的速度。设置一次构建和部署管道后,您将为项目的整个生命周期受益。若想深入了解如何从头开始实施CI/CD管道,我为您准备了一段视频教程,并提供了开源代码供您参考。

感谢您的阅读,希望对您有所帮助!😊


Suggest Changes

Previous Post
程序员必读:20 个提升 .NET 开发技能的实用技巧
Next Post
💡如何利用AI加速软件开发周期?深度解析技术流程