Condividi tramite


Avvio rapido: Creare un flusso di lavoro GitHub di convalida dei test

In questo avvio rapido si apprenderà come creare un flusso di lavoro GitHub per testare il codice sorgente .NET. L'esecuzione del test automatico del codice .NET all'interno di GitHub viene indicata come integrazione continua (CI), in cui le richieste pull o le modifiche apportate all'origine attivano i flussi di lavoro da esercitare. Insieme alla compilazione del codice sorgente, l'esecuzione del test garantisce che il codice sorgente compilato funzioni come previsto dall'autore. Il più delle volte, gli unit test fungono da ciclo di feedback immediato per garantire la validità delle modifiche apportate al codice sorgente.

Prerequisiti

  • Un account GitHub.
  • Un repository di codice sorgente .NET.

Creare un file di flusso di lavoro

Nel repository GitHub, aggiungere un nuovo file YAML alla directory .github/workflows. Scegliere un nome di file significativo, qualcosa che indichi chiaramente lo scopo del flusso di lavoro. Per altre informazioni, vedere File di flusso di lavoro.

Importante

GitHub richiede che i file di composizione del flusso di lavoro vengano inseriti nella directory .github/workflows.

I file di flusso di lavoro definiscono in genere una composizione di una o più azioni GitHub tramite jobs.<job_id>/steps[*]. Per maggiori informazioni, vedere Sintassi del flusso di lavoro per GitHub Actions.

Creare un nuovo file denominato build-and-test.yml, quindi copiare e incollare al suo interno i seguenti contenuti 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

Nella precedente composizione del flusso di lavoro:

  • name: build and test definisce il nome, "build and test" verrà visualizzato nelle notifiche di stato del flusso di lavoro.

    name: build and test
    
  • Il nodo on indica gli eventi che attivano il flusso di lavoro:

    on:
      push:
      pull_request:
        branches: [ main ]
        paths:
        - '**.cs'
        - '**.csproj'
    
    • Attivato quando un push o pull_request si verifica nel ramo main in cui tutti i file modificati terminano con le estensioni di file .cs o .csproj.
  • Il nodo env definisce le variabili di ambiente denominate (env var).

    env:
      DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
    
    • Alla variabile di ambiente DOTNET_VERSION viene assegnato il valore '6.0.401'. Successivamente la variabile di ambiente viene indicata per specificare la dotnet-version dell'azione GitHub actions/setup-dotnet@v3.
  • Il nodo jobs compila i passaggi da eseguire per il flusso di lavoro.

    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
    
    • Esiste un unico processo denominato build-<os>, dove <os> è il nome del sistema operativo da strategy/matrix. Gli elementi name e runs-on sono dinamici per ogni valore in matrix/os. Questa operazione verrà eseguita sulle versioni più recenti di Ubuntu, Windows e macOS.
    • L'azione GitHub actions/setup-dotnet@v3 è utilizzata per configurare l'SDK .NET con la versione specificata dalla variabile di ambiente DOTNET_VERSION.
    • Viene chiamato il comando dotnet restore.
    • Viene chiamato il comando dotnet build.
    • Viene chiamato il comando dotnet test.

Creare una notifica di stato del flusso di lavoro

È nella terminologia comune dei repository GitHub avere un file README.md nella radice della directory del repository. Analogamente, è utile poter segnalare lo stato più recente per vari flussi di lavoro. Tutti i flussi di lavoro possono generare una notifica di stato visivamente accattivante all'interno del file README.md. Per aggiungere la notifica di stato del flusso di lavoro:

  1. Dal repository GitHub selezionare l'opzione di navigazione Azioni.

  2. Tutti i flussi di lavoro del repository vengono visualizzati sul lato sinistro, quindi selezionare il flusso di lavoro desiderato e i puntini di sospensione (...).

    • Il pulsante puntini di sospensione (...) espande le opzioni di menu per il flusso di lavoro selezionato.
  3. Selezionare l'opzione di menu Crea notifica di stato.

    GitHub: Create status badge

  4. Selezionare il pulsante Copia Markdown notifica di stato.

    GitHub: Copy status badge Markdown

  5. Incollare il Markdown nel file README.md, salvare il file ed eseguire il commit e il push delle modifiche.

Per altre informazioni, vedere Aggiunta di una notifica di stato del flusso di lavoro.

Notifica di stato del flusso di lavoro di test di esempio

Superamento Fallito Nessuno stato
GitHub: test passing badge GitHub: test failing badge GitHub: test no-status badge

Vedi anche

Passaggi successivi