Guida introduttiva: Creare un flusso di lavoro GitHub per pubblicare un'app
In questa guida introduttiva, si apprenderà come creare un flusso di lavoro GitHub per pubblicare l'app .NET dal codice sorgente. La pubblicazione automatica dell'app .NET da GitHub in una destinazione viene definita distribuzione continua (CD). Esistono diverse destinazioni possibili per pubblicare un'applicazione. Nella presente guida introduttiva si pubblicherà in Azure.
Prerequisiti
- Un account GitHub.
- Repository del codice sorgente .NET.
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- App Web ASP.NET Core.
- Risorsa Servizio app di Azure.
Aggiungere il profilo di pubblicazione
Per pubblicare l'app in Azure, aprire il portale di Azure per l'istanza di Servizio app dell'applicazione. Nella panoramica della risorsa, selezionare Recupera profilo di pubblicazione e salvare il file* .PublishSetting localmente.
Avviso
Il profilo di pubblicazione contiene informazioni riservate, ad esempio le credenziali per l'accesso alla risorsa del Servizio app di Azure. Queste informazioni dovrebbero essere sempre trattate con molta attenzione.
Nel repository GitHub, passare a Impostazioni e selezionare Segreti dal menu di spostamento a sinistra. Selezionare Nuovo segreto del repository per aggiungere un nuovo segreto.
Immettere AZURE_PUBLISH_PROFILE
come Nome e incollare il contenuto XML dal profilo di pubblicazione nell'area testoValore. Selezionare Aggiungi segreto. Per ottenere ulteriori informazioni, vedere la sezione Segreti crittografati.
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, qualcosa che indichi chiaramente lo scopo del flusso di lavoro. Per ottenere ulteriori informazioni, vedere la sezione 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 ottenere ulteriori informazioni, consultare l'articolo Sintassi del flusso di lavoro per GitHub Actions.
Creare un nuovo file denominato publish-app.yml, quindi copiare e incollare i contenuti YML seguenti al suo interno:
name: publish
on:
push:
branches: [ production ]
env:
AZURE_WEBAPP_NAME: DotNetWeb
AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
publish:
runs-on: ubuntu-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: |
cd DotNet.WebApp
dotnet build --configuration Release --no-restore
dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true
- name: Test
run: |
cd DotNet.WebApp.Tests
dotnet test --no-restore --verbosity normal
- uses: azure/webapps-deploy@v2
name: Deploy
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }}
package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'
Nella composizione del flusso di lavoro precedente:
name: publish
definisce il nome, verrà visualizzato il messaggio "publish" nelle notifiche di stato del flusso di lavoro.name: publish
Il nodo
on
indica gli eventi che attivano il flusso di lavoro:on: push: branches: [ production ]
- Attivato quando si verifica un oggetto
push
nel ramoproduction
.
- Attivato quando si verifica un oggetto
Il nodo
env
definisce le variabili di ambiente denominate (env var).env: AZURE_WEBAPP_NAME: DotNetWeb AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
- La variabile di ambiente
AZURE_WEBAPP_NAME
viene assegnata al valoreDotNetWeb
. - La variabile di ambiente
AZURE_WEBAPP_PACKAGE_PATH
viene assegnata al valore'.'
. - La variabile di ambiente
DOTNET_VERSION
viene assegnata al valore'6.0.401'
. Successivamente verrà fatto riferimento alla variabile di ambiente per specificare l'oggettodotnet-version
dell'azione GitHubactions/setup-dotnet@v3
.
- La variabile di ambiente
Il nodo
jobs
compila i passaggi da eseguire per il flusso di lavoro.jobs: publish: runs-on: ubuntu-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: | cd DotNet.WebApp dotnet build --configuration Release --no-restore dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true - name: Test run: | cd DotNet.WebApp.Tests dotnet test --no-restore --verbosity normal - uses: azure/webapps-deploy@v2 name: Deploy with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }} package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'
- Esiste un singolo processo denominato
publish
che verrà eseguito nella versione più recente di Ubuntu. - L'azione GitHub
actions/setup-dotnet@v3
è utilizzata per configurare .NET SDK 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 publish
. - Viene chiamato il comando
dotnet test
. - L'azione GitHub
azure/webapps-deploy@v2
distribuisce l'app con gli oggetti specificatipublish-profile
epackage
.- L'oggetto
publish-profile
viene assegnato dal segreto del repositoryAZURE_PUBLISH_PROFILE
.
- L'oggetto
- Esiste un singolo processo denominato
Creare una notifica di stato del flusso di lavoro
È una nomenclatura comune 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 di 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 del 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 ottenere ulteriori informazioni, vedere Aggiunta di una notifica di stato del flusso di lavoro.
Esempio di notifica di stato del flusso di lavoro di pubblicazione
Superamento | Fallito | Nessuno stato |
---|---|---|