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
opull_request
si verifica nel ramomain
in cui tutti i file modificati terminano con le estensioni di file .cs o .csproj.
- Attivato quando un
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 ladotnet-version
dell'azione GitHubactions/setup-dotnet@v3
.
- Alla variabile di ambiente
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 dastrategy/matrix
. Gli elementiname
eruns-on
sono dinamici per ogni valore inmatrix/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 ambienteDOTNET_VERSION
. - Viene chiamato il comando
dotnet restore
. - Viene chiamato il comando
dotnet build
. - Viene chiamato il comando
dotnet test
.
- Esiste un unico processo denominato
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:
Dal repository GitHub selezionare l'opzione di navigazione Azioni.
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.
Selezionare l'opzione di menu Crea notifica di stato.
Selezionare il pulsante Copia Markdown notifica di stato.
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 |
---|---|---|
Vedi anche
- dotnet restore
- dotnet build
- dotnet test
- Testing unità delle app .NET
- azioni/checkout
- azioni/setup-dotnet