Udostępnij za pośrednictwem


Szybki start: tworzenie przepływu pracy GitHub do walidacji testów

W tym przewodniku Szybki start dowiesz się, jak utworzyć przepływ pracy usługi GitHub w celu przetestowania kodu źródłowego platformy .NET. Automatyczne testowanie kodu .NET w usłudze GitHub jest określane mianem ciągłej integracji (CI), gdzie żądania scalenia lub zmiany w kodzie źródłowym wyzwalają przepływy pracy do wykonania testów. Oprócz kompilowania kodu źródłowego testowanie gwarantuje, że skompilowany kod źródłowy będzie działał jako zamierzony przez autora. Zazwyczaj testy jednostkowe służą jako natychmiastowa pętla informacji zwrotnej, aby zapewniać poprawność zmian w kodzie źródłowym.

Wymagania wstępne

  • Konto usługi GitHub.
  • Repozytorium kodu źródłowego platformy .NET.

Tworzenie pliku przepływu pracy

W repozytorium GitHub dodaj nowy plik YAML do katalogu .github/workflows . Wybierz zrozumiałą nazwę pliku, co wyraźnie wskaże, co ma zrobić przepływ pracy. Aby uzyskać więcej informacji, zobacz Plik przepływu pracy.

Ważne

Usługa GitHub wymaga, aby pliki kompozycji przepływu pracy zostały umieszczone w katalogu .github/workflows .

Pliki przepływu pracy zwykle definiują kompozycję co najmniej jednej akcji usługi GitHub za pośrednictwem elementu jobs.<job_id>/steps[*]. Aby uzyskać więcej informacji, zobacz Składnia przepływu pracy dla funkcji GitHub Actions.

Utwórz nowy plik o nazwie build-and-test.yml, skopiuj i wklej do niego następującą zawartość YML:

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

W poprzedniej kompozycji przepływu pracy:

  • name: build and test definiuje nazwę, "kompilacja i testowanie" będzie wyświetlana na wskaźnikach stanu przepływu pracy.

    name: build and test
    
  • Węzeł on oznacza zdarzenia, które wyzwalają przepływ pracy:

    on:
      push:
      pull_request:
        branches: [ main ]
        paths:
        - '**.cs'
        - '**.csproj'
    
    • Wyzwalany, gdy element push lub pull_request wystąpi na gałęzi main, gdzie jakiekolwiek pliki zmienione kończą się rozszerzeniami plików .cs lub .csproj.
  • Węzeł env definiuje nazwane zmienne środowiskowe (env var).

    env:
      DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
    
    • Zmienna środowiskowa DOTNET_VERSION ma przypisaną wartość '6.0.401'. Później odwołuje się do zmiennej środowiskowej actions/setup-dotnet@v3 w celu określenia dotnet-version akcji usługi GitHub.
  • Węzeł jobs opracowuje kroki do realizacji w przepływie pracy.

    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
    
    • Istnieje jedno zadanie o nazwie build-<os> , gdzie <os> jest nazwą systemu operacyjnego z strategy/matrix. Elementy name i runs-on są dynamiczne dla każdej wartości w matrix/os. Zostanie to uruchomione w najnowszych wersjach systemów Ubuntu, Windows i macOS.
    • Akcja actions/setup-dotnet@v3 usługi GitHub służy do konfigurowania zestawu .NET SDK z określoną wersją ze zmiennej środowiskowej DOTNET_VERSION .
    • Polecenie dotnet restore jest wywoływane.
    • Polecenie dotnet build zostaje wywołane.
    • Wywoływane jest polecenie dotnet test.

Stwórz odznakę statusu przepływu pracy

Powszechną nomenklaturą repozytoriów GitHub jest posiadanie pliku README.md w katalogu głównym katalogu repozytorium. Podobnie, miło jest przedstawić najnowszy status dla różnych przepływów pracy. Wszystkie przepływy pracy mogą wygenerować wskaźnik stanu, który jest wizualnie atrakcyjny w pliku README.md . Aby dodać wskaźnik stanu przepływu pracy:

  1. W repozytorium GitHub wybierz opcję nawigacji Akcje .

  2. Wszystkie przepływy pracy repozytorium są wyświetlane po lewej stronie, należy wybrać żądany przepływ pracy oraz przycisk z wielokropkiem (...).

    • Przycisk wielokropka (...) rozwija opcje menu dla wybranego przepływu pracy.
  3. Wybierz opcję menu Utwórz znaczek stanu.

    GitHub: Utwórz odznakę statusu

  4. Wybierz przycisk Kopiuj odznakę stanu Markdown.

    GitHub: kopiuj oznaczenie statusu w Markdown

  5. Wklej znacznik Markdown do pliku README.md , zapisz plik, zatwierdź i wypchnij zmiany.

Aby uzyskać więcej informacji, zobacz Dodawanie wskaźnika stanu przepływu pracy.

Przykładowy wskaźnik stanu testu przepływu pracy

Przekazywanie Niepowodzenie Brak stanu
GitHub: odznaka zaliczenia testu GitHub: znacznik niepowodzenia testu GitHub: testowy badge bez statusu

Zobacz też

Następne kroki