Dela via


Snabbstart: Skapa ett GitHub-arbetsflöde för testverifiering

I den här snabbstarten får du lära dig hur du skapar ett GitHub-arbetsflöde för att testa din .NET-källkod. Att automatiskt testa .NET-koden i GitHub kallas kontinuerlig integrering (CI), där pull-begäranden eller ändringar i arbetsflödena för källutlösare ska användas. Tillsammans med att skapa källkoden säkerställer testningen att den kompilerade källkoden fungerar som författaren avsåg. Oftast fungerar enhetstester som en omedelbar feedbackloop för att säkerställa giltigheten för ändringar i källkoden.

Förutsättningar

  • Ett GitHub-konto.
  • En .NET-källkodslagringsplats.

Skapa en arbetsflödesfil

På GitHub-lagringsplatsen lägger du till en ny YAML-fil i katalogen .github/workflows . Välj ett meningsfullt filnamn, något som tydligt anger vad arbetsflödet är avsett att göra. Mer information finns i Arbetsflödesfil.

Viktigt!

GitHub kräver att arbetsflödets sammansättningsfiler placeras i katalogen .github/workflows .

Arbetsflödesfiler definierar vanligtvis en sammansättning av en eller flera GitHub-åtgärder via jobs.<job_id>/steps[*]. Mer information finns i Arbetsflödessyntax för GitHub Actions.

Skapa en ny fil med namnet build-and-test.yml, kopiera och klistra in följande YML-innehåll i den:

name: build and test

on:
  push:
  pull_request:
    branches: [ main ]
    paths:
    - '**.cs'
    - '**.csproj'

env:
  DOTNET_VERSION: '6.0.401' # The .NET SDK version to use

jobs:
  build-and-test:

    name: build-and-test-${{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: Test
      run: dotnet test --no-restore --verbosity normal

I föregående arbetsflödessammansättning:

  • Definierar name: build and test namnet, "build and test" visas i statusmärken för arbetsflödet.

    name: build and test
    
  • Noden on anger de händelser som utlöser arbetsflödet:

    on:
      push:
      pull_request:
        branches: [ main ]
        paths:
        - '**.cs'
        - '**.csproj'
    
    • Utlöses när en push eller pull_request inträffar på grenen main där alla filer som ändrats slutar med filnamnstilläggen .cs eller .csproj .
  • Noden env definierar namngivna miljövariabler (env var).

    env:
      DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
    
    • Miljövariabeln DOTNET_VERSION tilldelas värdet '6.0.401'. Miljövariabeln refereras senare till för att ange dotnet-versionactions/setup-dotnet@v3 GitHub-åtgärden.
  • Noden jobs skapar de steg som arbetsflödet ska utföra.

    jobs:
      build-and-test:
    
        name: build-and-test-${{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: Test
          run: dotnet test --no-restore --verbosity normal
    
    • Det finns ett enda jobb med namnet build-<os> där <os> är operativsystemets namn från strategy/matrix. Elementen name och runs-on är dynamiska för varje värde i matrix/os. Detta körs på de senaste versionerna av Ubuntu, Windows och macOS.
    • GitHub-åtgärden actions/setup-dotnet@v3 används för att konfigurera .NET SDK med den angivna versionen från DOTNET_VERSION miljövariabeln.
    • Kommandot dotnet restore anropas.
    • Kommandot dotnet build anropas.
    • Kommandot dotnet test anropas.

Skapa ett statusmärke för arbetsflödet

Det är vanligt att GitHub-lagringsplatser har en README.md fil i roten i lagringsplatsens katalog. På samma sätt är det bra att rapportera den senaste statusen för olika arbetsflöden. Alla arbetsflöden kan generera ett statusmärke som är visuellt tilltalande i README.md-filen . Så här lägger du till statusikonen för arbetsflödet:

  1. Från GitHub-lagringsplatsen väljer du navigeringsalternativet Åtgärder .

  2. Alla arbetsflöden för lagringsplatser visas till vänster, välj önskat arbetsflöde och ellipsknappen (...).

    • Ellipsknappen (...) expanderar menyalternativen för det valda arbetsflödet.
  3. Välj menyalternativet Skapa statusikon .

    GitHub: Create status badge

  4. Välj knappen Kopiera statusikonen Markdown.

    GitHub: Copy status badge Markdown

  5. Klistra in Markdown i filen README.md , spara filen, checka in och push-överföra ändringarna.

Mer information finns i Lägga till ett statusmärke för arbetsflödet.

Exempel på statusmärke för testarbetsflöde

Passerar Misslyckas Ingen status
GitHub: test passing badge GitHub: test failing badge GitHub: test no-status badge

Se även

Nästa steg