Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 molte destinazioni possibili per pubblicare un'applicazione, in questa guida introduttiva si pubblicherà in Azure.
Prerequisiti
- Un account GitHub.
- Un repository di codice sorgente .NET.
- Un account Azure con una sottoscrizione attiva. Creare un account gratuito.
- Un'app Web di ASP.NET Core.
- Una risorsa del servizio app di Azure.
Aggiungere il profilo di pubblicazione
Per pubblicare l'app in Azure, aprire il portale di Azure per l'istanza del servizio app dell'applicazione. Nella panoramica della risorsa selezionare Ottieni profilo di pubblicazione e salvare il file .PublishSetting localmente.
Avvertimento
Il profilo di pubblicazione contiene informazioni riservate, ad esempio le credenziali per l'accesso alla risorsa del servizio app di Azure. Queste informazioni devono essere sempre trattate con molta attenzione.
Nel repository GitHub passare a Impostazioni e selezionare Segreti dal menu di spostamento a sinistra. Seleziona 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 di testo Valore . Selezionare Aggiungi segreto. Per altre informazioni, vedere 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, un elemento che indicherà chiaramente cosa deve fare il flusso di lavoro. Per altre 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 il jobs.<job_id>/steps[*]. Per altre informazioni, vedere sintassi del flusso di lavoro per GitHub Actions.
Creare un nuovo file denominato publish-app.yml, copiare e incollare il contenuto YML seguente:
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:
Definisce
name: publishil nome, "Publish" verrà visualizzato nei badge di stato del flusso di lavoro.name: publishIl
onnodo indica gli eventi che attivano il flusso di lavoro:on: push: branches: [ production ]- Attivato quando si verifica un
pushnellaproductionbranche.
- Attivato quando si verifica un
Il
envnodo 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- Alla variabile
AZURE_WEBAPP_NAMEdi ambiente viene assegnato il valoreDotNetWeb. - Alla variabile
AZURE_WEBAPP_PACKAGE_PATHdi ambiente viene assegnato il valore'.'. - Alla variabile
DOTNET_VERSIONdi ambiente viene assegnato il valore'6.0.401'. In seguito viene fatta riferimento alla variabile di ambiente per specificare ildotnet-versiondell'actions/setup-dotnet@v3GitHub Action.
- Alla variabile
Il
jobsnodo 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
publishche verrà eseguito nella versione più recente di Ubuntu. - GitHub
actions/setup-dotnet@v3Action viene usato per configurare .NET SDK con la versione specificata dallaDOTNET_VERSIONvariabile di ambiente. - Viene chiamato il
dotnet restorecomando . - Viene chiamato il
dotnet buildcomando . - Viene chiamato il
dotnet publishcomando . - Viene chiamato il
dotnet testcomando . -
azure/webapps-deploy@v2GitHub Action distribuisce l'app con l'oggetto epublish-profilespecificatopackage.- L'oggetto
publish-profileviene assegnato dalla chiave segreta del repositoryAZURE_PUBLISH_PROFILE.
- L'oggetto
- Esiste un singolo processo denominato
Creare un badge di stato del flusso di lavoro
Per i repository GitHub è comune avere un file README.md nella radice della directory del repository. Analogamente, è bello 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 navigazione Azioni.
Tutti i flussi di lavoro del repository vengono visualizzati sul lato sinistro; seleziona il flusso di lavoro desiderato, quindi il pulsante con 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 di menu Crea badge di stato.
Selezionare il pulsante Copy status badge Markdown (Copia stato markdown ).
Incollare il markdown nel file README.md , salvare il file, eseguire il commit ed eseguire il push delle modifiche.
Per ulteriori informazioni, consultare Aggiunta di un badge sullo stato del flusso di lavoro.
Notifica di stato del flusso di lavoro di pubblicazione di esempio
| Effimero | Fallimento | Nessuno stato |
|---|---|---|
| GitHub: pubblica badge di approvazione |
|
|
Vedere anche
- dotnet restore
- comando di build dotnet
- di test dotnet
- di pubblicazione dotnet