Démarrage rapide : Créer un workflow GitHub de validation de test

Dans ce guide de démarrage rapide, vous allez apprendre à créer un workflow GitHub pour tester votre code source .NET. Le test automatique de votre code .NET dans GitHub est appelé intégration continue (CI) ; c’est ici que les demandes de tirage ou les modifications apportées aux workflows du déclencheur source doivent s’exercer. En plus de générer le code source, le test garantit que le code source compilé fonctionne comme prévu par l’auteur. Le plus souvent, les tests unitaires servent de boucle de feedback immédiat pour garantir la validité des modifications apportées au code source.

Prérequis

Créer un fichier de flux de travail

Dans le référentiel GitHub, ajoutez un nouveau fichier YAML au répertoire .github/workflows. Choisissez un nom de fichier explicite, qui indiquera clairement ce que le workflow est censé faire. Pour plus d’informations, consultez Fichier de flux de travail.

Important

GitHub exige que les fichiers de composition de flux de travail soient placés dans le répertoire .github/workflows .

Les fichiers de flux de travail définissent généralement une composition d’une ou plusieurs actions GitHub via jobs.<job_id>/steps[*]. Pour plus d’informations, consultez Syntaxe de workflow pour GitHub Actions.

Créez un nouveau fichier nommé build-and-test.yml, copiez et collez-y le contenu YML suivant :

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

Dans la composition de workflow précédente :

  • Le name: build and test définit le nom, « générer et tester » s’affiche dans les badges d’état du workflow.

    name: build and test
    
  • Le nœud on désigne les événements qui déclenchent le workflow :

    on:
      push:
      pull_request:
        branches: [ main ]
        paths:
        - '**.cs'
        - '**.csproj'
    
    • Déclenchée lorsqu’un push ou pull_request se produit sur la branche main où les fichiers modifiés se terminent par les extensions de fichier .cs ou .csproj.
  • Le nœud env définit des variables d’environnement nommées (env var).

    env:
      DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
    
    • La variable d'environnement DOTNET_VERSION est attribuée à la valeur '6.0.401'. La variable d’environnement est référencée ultérieurement pour spécifier le dotnet-version de l’action GitHub actions/setup-dotnet@v3.
  • Le nœud jobs génère les étapes à suivre pour le workflow.

    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
    
    • Il existe un seul travail, nommé build-<os><os> est le nom du système d’exploitation de strategy/matrix. Les éléments name et runs-on sont dynamiques pour chaque valeur dans matrix/os. Cette opération s’exécute sur les dernières versions d’Ubuntu, Windows et macOS.
    • L’action GitHub actions/setup-dotnet@v3 est utilisée pour configurer le SDK .NET avec la version spécifiée à partir de la variable d’environnement DOTNET_VERSION.
    • La commande dotnet restore est appelée.
    • La commande dotnet build est appelée.
    • La commande dotnet test est appelée.

Créer un badge d’état de workflow

Il est courant que les référentiels GitHub aient un fichier README.md à la racine du répertoire du référentiel. De même, il est agréable de signaler l’état le plus récent pour différents flux de travail. Tous les flux de travail peuvent générer un badge d’état, qui est visuellement attrayant dans le fichier README.md. Pour ajouter le badge d’état du flux de travail :

  1. Dans le référentiel GitHub, sélectionnez l’option de navigation Actions.

  2. Tous les flux de travail du référentiel s’affichent sur le côté gauche, sélectionnez le flux de travail souhaité et le bouton points de suspension (...).

    • Le bouton points de suspension (...) développe les options de menu pour le flux de travail sélectionné.
  3. Sélectionnez l’option de menu Créer un badge d’état.

    GitHub: Create status badge

  4. Sélectionnez le bouton Copier le Markdown du badge d’état.

    GitHub: Copy status badge Markdown

  5. Collez le Markdown dans le fichier README.md, enregistrez le fichier, validez et envoyez (push) les modifications.

Pour plus d’informations, consultez Ajouter un badge d’état de workflow.

Exemple de badge d’état de workflow test

Passage Échec de Aucun état
GitHub: test passing badge GitHub: test failing badge GitHub: test no-status badge

Voir aussi

Étapes suivantes