GitHub Actions e .NET
In questa panoramica si apprenderà quale ruolo GitHub Actions svolgere nello sviluppo di applicazioni .NET. GitHub Actions consente ai repository di codice sorgente di automatizzare l'integrazione continua (CI) e il recapito continuo (CD). Oltre a ciò, GitHub Actions espone scenari più avanzati, fornendo hook per l'automazione con revisioni del codice, gestione dei rami e valutazione dei problemi. Con il codice sorgente .NET in GitHub è possibile sfruttare GitHub Actions in molti modi.
GitHub Actions
GitHub Actions rappresenta comandi autonomi, ad esempio:
-
azioni/checkout: questa azione esegue il checkout del repository sotto
$GITHUB_WORKSPACE
, in modo che il flusso di lavoro possa accedervi. - actions/setup-dotnet: quest'azione configura un ambiente CLI .NET per l'uso nelle azioni.
- dotnet/versionsweeper: questa azione esegue una scansione dei repository .NET per le versioni di destinazione non supportate di .NET.
Anche se questi comandi sono isolati in una singola azione, sono potenti tramite composizione del flusso di lavoro. Nella composizione del flusso di lavoro si definiscono gli eventi che attivano il flusso di lavoro. Quando un flusso di lavoro è in esecuzione, ci sono vari processi che deve eseguire. Ogni lavoro definisce un numero indeterminato di passaggi . I passaggi delegano a GitHub Actions o in alternativa chiamano gli script della riga di comando.
Per ulteriori informazioni, vedere Introduzione a GitHub Actions. Si pensi a un file del flusso di lavoro come una composizione che rappresenta i vari passaggi per compilare, testare e/o pubblicare 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.
Azioni GitHub personalizzate
Anche se in Marketplaceè disponibile un sacco di GitHub Actions, è consigliabile crearne uno personalizzato. È possibile creare GitHub Actions che eseguono applicazioni .NET. Per ulteriori informazioni, consultare Tutorial: Creare un'azione GitHub con .NET
File del flusso di lavoro
GitHub Actions viene usato tramite un file del flusso di lavoro. Il file del flusso di lavoro deve trovarsi nella directory
File del flusso di lavoro di esempio
Esistono molti esempi di file workflow .NET forniti come tutorial e quickstart. Ecco alcuni esempi validi di nomi di file del flusso di lavoro:
nome file del flusso di lavoro
Descrizione
Compila (o costruisce) il codice sorgente. Se il codice sorgente non viene compilato, l'operazione avrà esito negativo.
Esegue gli unit test all'interno del repository. Per eseguire i test, è necessario prima compilare il codice sorgente, ovvero un flusso di lavoro di compilazione e di test ,che sostituisce il flusso di lavoro build-validation.yml. Gli unit test non superati causeranno un errore del flusso di lavoro.
Crea pacchetti e pubblica il codice sorgente in una destinazione.
Analizza il codice per individuare le vulnerabilità di sicurezza e gli errori di codifica. Eventuali vulnerabilità individuate potrebbero causare errori.
Segreti crittografati
Per utilizzare i segreti crittografati nei file di workflow, fai riferimento ai segreti usando la sintassi dell'espressione del flusso di lavoro dall'oggetto di contesto secrets
.
${{ secrets.MY_SECRET_VALUE }} # The MY_SECRET_VALUE must exist in the repository as a secret
I valori segreti non vengono mai registrati nei registri. I nomi vengono invece stampati con un asterisco che rappresenta i relativi valori. Ad esempio, quando ogni passaggio viene eseguito all'interno di un processo, tutti i valori usati vengono restituiti nel log azioni. I valori dei segreti appaiono simili ai seguenti:
MY_SECRET_VALUE: ***
Importante
Il contesto secrets
fornisce il token di autenticazione GitHub relativo al repository, al ramo e all'azione. Viene fornito da GitHub senza alcun intervento dell'utente:
${{ secrets.GITHUB_TOKEN }}
Per altre informazioni, vedere Uso di segreti crittografati in un flusso di lavoro.
Avvenimenti
I flussi di lavoro vengono attivati da molti tipi diversi di eventi. Oltre agli eventi webhook, che sono i più comuni, esistono anche eventi pianificati ed eventi manuali.
Esempio di evento webhook
L'esempio seguente illustra come specificare un trigger di eventi webhook per un flusso di lavoro:
name: code coverage
on:
push:
branches:
- main
pull_request:
branches:
- main, staging
jobs:
coverage:
runs-on: ubuntu-latest
# steps omitted for brevity
Nel flusso di lavoro precedente, gli eventi push
e pull_request
attiveranno l'esecuzione del flusso di lavoro.
Esempio di evento pianificato
L'esempio seguente illustra come specificare un trigger di evento pianificato (processo cron) per un flusso di lavoro:
name: scan
on:
schedule:
- cron: '0 0 1 * *'
# additional events omitted for brevity
jobs:
build:
runs-on: ubuntu-latest
# steps omitted for brevity
Nel flusso di lavoro precedente, l'evento schedule
specifica il cron
di '0 0 1 * *'
che attiverà l'avvio del flusso di lavoro il primo giorno di ogni mese. L'esecuzione di flussi di lavoro in base a una pianificazione è ideale per i flussi di lavoro che richiedono molto tempo per l'esecuzione o l'esecuzione di azioni che richiedono meno attenzione.
Esempio di evento manuale
L'esempio seguente illustra come specificare un trigger di eventi manuale per un flusso di lavoro:
name: build
on:
workflow_dispatch:
inputs:
reason:
description: 'The reason for running the workflow'
required: true
default: 'Manual run'
# additional events omitted for brevity
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 'Print manual run reason'
if: ${{ github.event_name == 'workflow_dispatch' }}
run: |
echo 'Reason: ${{ github.event.inputs.reason }}'
# additional steps omitted for brevity
Nel flusso di lavoro precedente, l'evento workflow_dispatch
richiede un reason
come input. GitHub visualizza questo e l'interfaccia utente cambia dinamicamente per richiedere all'utente di specificare il motivo per l'esecuzione manuale del flusso di lavoro. Il steps
stamperà il motivo fornito dall'utente.
Per altre informazioni, vedere Eventi che attivano flussi di lavoro.
CLI di .NET
L'interfaccia della riga di comando di .NET è una toolchain multipiattaforma per lo sviluppo, la compilazione, l'esecuzione e la pubblicazione di applicazioni .NET. La .NET CLI viene utilizzata per run
come parte di singoli steps
all'interno di un file del flusso di lavoro. I comandi comuni includono:
- 'installazione del carico di lavoro dotnet
- dotnet restore
- comando di build dotnet
- di test dotnet
- di pubblicazione dotnet
Per altre informazioni, vedere panoramica dell'interfaccia della riga di comando di .NET
Vedere anche
Per un'analisi più approfondita di GitHub Actions con .NET, prendere in considerazione le risorse seguenti:
guida rapida:
esercitazioni :
- Esercitazione : Creare un'azione GitHub con .NET