Dela via


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

I den här snabbstarten får du lära dig hur du skapar ett GitHub-arbetsflöde för att verifiera kompilering av .NET-källkoden i GitHub. Kompilering av .NET-koden är ett av de mest grundläggande valideringsstegen som du kan vidta för att säkerställa kvaliteten på uppdateringar av koden. Om koden inte kompileras (eller skapas) är det enkelt att avskräcka och bör vara ett tydligt tecken på att koden måste åtgärdas.

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-validation.yml, kopiera och klistra in följande YML-innehåll i den:

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

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

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

    name: build
    
  • 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:
    
        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
    
    • 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 krävs för att konfigurera .NET SDK med den angivna versionen från DOTNET_VERSION miljövariabeln.

    • (Valfritt) Ytterligare steg kan krävas, beroende på din .NET-arbetsbelastning. De utelämnas från det här exemplet, men du kan behöva ytterligare verktyg installerade för att skapa dina appar.

      • När du till exempel skapar ett ASP.NET Core Blazor WebAssembly-program med AoT-kompilering (Ahead-of-Time) installerar du motsvarande arbetsbelastning innan du kör återställnings-/build-/publiceringsåtgärder.
      - name: Install WASM Tools Workload
        run: dotnet workload install wasm-tools
      

      Mer information om .NET-arbetsbelastningar finns i dotnet workload install.

    • Kommandot dotnet restore anropas.

    • Kommandot dotnet build anropas.

I det här fallet ser du en arbetsflödesfil som en sammansättning som representerar de olika stegen för att skapa ett program. Många .NET CLI-kommandon är tillgängliga, varav de flesta kan användas i kontexten för en GitHub-åtgärd.

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 byggarbetsflöde

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

Se även

Nästa steg