CI/CD für C# (.NET) Projekte mit GitHub Actions: Schritt-für-Schritt-Anleitung

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung: Warum CI/CD für C# (.NET) Projekte entscheidend ist



Moderne Softwareentwicklung ist ohne Automatisierung nicht möglich. Manuelle Build-, Test- und Bereitstellungsprozesse sind nicht nur langsam, sondern auch fehleranfällig. Für C#-Entwickler, die mit dem .NET-Ökosystem arbeiten, wird die Einführung von CI/CD (Continuous Integration / Continuous Deployment) zum Industriestandard.



GitHub Actions ist ein leistungsstarkes und flexibles Tool zur Automatisierung von Arbeitsabläufen, das direkt in GitHub integriert ist. Es ermöglicht die Erstellung von Pipelines (Workflows), die auf Ereignisse im Repository reagieren: Pushes, Pull Requests, Releases und vieles mehr. In diesem Artikel werden wir durchgehen, wie man eine vollständige CI/CD-Pipeline für ein C#-Projekt auf Basis von .NET mit GitHub Actions einrichtet.



Sie erfahren, wie Sie:

  • Den automatischen Build des Projekts einrichten.
  • Unit-Tests (z. B. xUnit oder NUnit) ausführen.
  • Build-Artefakte veröffentlichen.
  • Die Anwendung automatisch deployen (z. B. auf Azure, Docker Hub oder einen Server).


1. Grundlagen von GitHub Actions: Workflow, Jobs und Steps



Bevor wir Code schreiben, lassen Sie uns die grundlegenden Konzepte von GitHub Actions verstehen.



  • Workflow: Dies ist ein automatisierter Prozess, den Sie in einer YAML-Datei im Ordner .github/workflows definieren. Ein Workflow wird durch einen Trigger gestartet (z. B. Push in den main-Branch).
  • Job: Eine Reihe von Schritten (steps), die auf einem einzigen Runner (virtuellen Maschine) ausgeführt werden. Jobs können sequenziell oder parallel ausgeführt werden.
  • Step: Ein einzelner Befehl oder eine Aktion (action). Dies kann das Ausführen eines Skripts, die Installation von Abhängigkeiten oder die Verwendung einer vorgefertigten Action aus dem Marketplace sein.
  • Runner: Der Server, der Ihren Workflow ausführt. GitHub stellt kostenlose Runner (Ubuntu, Windows, macOS) zur Verfügung, oder Sie können Ihren eigenen betreiben.


Für .NET-Projekte werden wir vorgefertigte Actions wie actions/checkout (zum Klonen des Repositorys) und actions/setup-dotnet (zur Installation des .NET SDK) verwenden.



2. Einrichtung einer grundlegenden CI-Pipeline: Build und Test



Erstellen wir unseren ersten Workflow. Erstellen Sie dazu im Stammverzeichnis des Repositorys den Ordner .github/workflows und darin die Datei dotnet-build.yml.



Hier ist die minimale YAML-Datei zum Bauen und Testen eines C#-Projekts:



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' # Geben Sie Ihre .NET-Version an

- 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


Code-Analyse:

  • name: Der Name des Workflows, der in GitHub angezeigt wird.
  • on: Definiert die Trigger. In unserem Fall – Push und Pull Request in die Branches main und develop.
  • jobs: Enthält eine Aufgabe build-and-test, die auf ubuntu-latest ausgeführt wird.
  • steps: Eine Abfolge von Aktionen: Code klonen, .NET 8.0 installieren, NuGet-Pakete wiederherstellen, im Release-Modus bauen und Tests ausführen.


Nachdem Sie diese Datei in das Repository gepusht haben, wird GitHub Actions den Workflow automatisch starten. Sie sehen entweder einen grünen Haken oder ein rotes Kreuz neben dem Commit.

Blogs

Buchempfehlungen