Guida introduttiva: Creare un flusso di lavoro GitHub di convalida di build
In questa guida introduttiva si apprenderà come creare un flusso di lavoro GitHub per convalidare la compilazione del codice sorgente .NET in GitHub. La compilazione del codice .NET è uno dei passaggi di convalida più semplici che è possibile eseguire per garantire la qualità degli aggiornamenti al codice. Se il codice non viene compilato, si tratta di un semplice deterrente che indica che il codice deve essere corretto.
Prerequisiti
- Un account GitHub.
- Un repository del codice sorgente .NET.
Creare un file del flusso di lavoro
Nel repository GitHub aggiungere un nuovo file YAML alla directory .github/workflows. Scegliere un nome di file significativo, un elemento che indicherà chiaramente cosa deve fare il flusso di lavoro. Per ulteriori informazioni, vedere File del flusso di lavoro.
Importante
GitHub richiede che i file di composizione del flusso di lavoro vengano inseriti nella directory .github/workflows.
I file del flusso di lavoro definiscono in genere una composizione di una o più azioni GitHub tramite jobs.<job_id>/steps[*]
. Per altre informazioni, vedere Sintassi del flusso di lavoro per GitHub Actions.
Creare un nuovo file denominato build-validation.yml, quindi copiare e incollare il contenuto YML seguente al suo interno:
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
Nella composizione del flusso di lavoro precedente:
name: build
definisce il nome, "build" verrà visualizzato nelle notifiche di stato del flusso di lavoro.name: build
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'
. In seguito viene fatto riferimento alla variabile di ambiente per specificare l'oggettodotnet-version
di GitHub Actionactions/setup-dotnet@v3
.
- Alla variabile di ambiente
Il nodo
jobs
compila i passaggi da eseguire per il flusso di lavoro.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
Esiste un singolo 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 nelle versioni più recenti di Ubuntu, Windows e macOS.La GitHub Action
actions/setup-dotnet@v3
è necessaria per configurare .NET SDK con la versione specificata dalla variabile di ambienteDOTNET_VERSION
.(Facoltativamente) Potrebbero essere necessari passaggi aggiuntivi, a seconda del carico di lavoro .NET. Vengono omessi da questo esempio, ma potrebbero essere necessari altri strumenti installati per compilare le app.
- Ad esempio, quando si compila un'applicazione WebAssembly Blazor ASP.NET Core con compilazione AoT (Ahead-of-Time) è necessario installare il carico di lavoro corrispondente prima di eseguire operazioni di ripristino/compilazione/pubblicazione.
- name: Install WASM Tools Workload run: dotnet workload install wasm-tools
Per altre informazioni sui carichi di lavoro .NET, vedere
dotnet workload install
.Viene chiamato il comando
dotnet restore
.Viene chiamato il comando
dotnet build
.
In questo caso, si consideri un file del flusso di lavoro come una composizione che rappresenta i vari passaggi per compilare un'applicazione. Sono disponibili molti comandi dell'interfaccia della riga di comando di .NET, la maggior parte dei quali può essere usata nel contesto di un'azione GitHub.
Creare una notifica di stato del flusso di lavoro
È comune denominazione per i 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 relativa allo stato del flusso di lavoro:
Nel repository GitHub selezionare l'opzione di spostamento Azioni.
Tutti i flussi di lavoro del repository vengono visualizzati sul lato sinistro, selezionare il flusso di lavoro desiderato e i puntini di sospensione (...).
- Il pulsante con i puntini di sospensione (...) espande le opzioni di menu per il flusso di lavoro selezionato.
Selezionare l'opzione del menu Crea notifica di stato.
Selezionare il pulsante Copia markdown notifica di stato.
Incollare il markdown nel file README.md, salvare il file, eseguire il commit ed eseguire 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 compilazione di esempio
Superamento | Fallito | Nessuno stato |
---|---|---|