Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung erfahren Sie, wie Sie einen GitHub-Workflow erstellen, um Ihre .NET-App aus Quellcode zu veröffentlichen. Die automatische Veröffentlichung Ihrer .NET-App von GitHub an ein Ziel wird als kontinuierliche Bereitstellung (CD) bezeichnet. Es gibt viele mögliche Veröffentlichungsziele für eine Anwendung. In dieser Schnellstartanleitung veröffentlichen Sie Ihre Anwendung in Azure.
Voraussetzungen
- Ein GitHub-Konto.
- Ein .NET-Quellcode-Repository.
- Ein Azure-Konto mit einem aktiven Abonnement. Kostenlos ein Konto erstellen.
- Eine ASP.NET Core Web App.
- Eine Azure App Service-Ressource.
Veröffentlichungsprofil hinzufügen
Um die App in Azure zu veröffentlichen, öffnen Sie das Azure-Portal für die App Service-Instanz der Anwendung. Wählen Sie in der RessourcenübersichtVeröffentlichungsprofil abrufen aus und speichern Sie die .PublishSetting-Datei lokal.
Warnung
Das Veröffentlichungsprofil enthält vertrauliche Informationen, z. B. Anmeldeinformationen für den Zugriff auf Ihre Azure App Service-Ressource. Diese Informationen sollten immer sehr sorgfältig behandelt werden.
Navigieren Sie im GitHub-Repository zu "Einstellungen ", und wählen Sie " Geheime Schlüssel" im linken Navigationsmenü aus. Wählen Sie "Neuer Repositoryschlüssel" aus, um einen neuen geheimen Schlüssel hinzuzufügen.
Geben Sie AZURE_PUBLISH_PROFILE als Namen ein, und fügen Sie den XML-Inhalt aus dem Veröffentlichungsprofil in den Textbereich "Wert" ein. Wählen Sie "Geheimen Schlüssel hinzufügen" aus. Weitere Informationen finden Sie unter Verschlüsselte geheime Schlüssel.
Erstellen einer Workflowdatei
Fügen Sie im GitHub-Repository eine neue YAML-Datei zum Verzeichnis ".github/workflows " hinzu. Wählen Sie einen aussagekräftigen Dateinamen aus, was eindeutig darauf hinweist, was der Workflow tun soll. Weitere Informationen finden Sie in der Workflowdatei.
Von Bedeutung
GitHub erfordert, dass Workflowkompositionsdateien im Github/Workflows-Verzeichnis platziert werden.
Workflowdateien definieren in der Regel eine Komposition einer oder mehrerer GitHub-Aktionen über die jobs.<job_id>/steps[*]. Weitere Informationen finden Sie unter Workflowsyntax für GitHub-Aktionen.
Erstellen Sie eine neue Datei mit dem Namen publish-app.yml, kopieren Sie den folgenden YML-Inhalt, und fügen Sie ihn ein:
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'
In der vorherigen Workflowkomposition:
Der
name: publishdefiniert den Namen, "veröffentlichen" wird in Workflow-Statusanzeigen erscheinen.name: publishDer
onKnoten gibt die Ereignisse an, die den Workflow auslösen:on: push: branches: [ production ]- Wird ausgelöst, wenn ein
pushEreignis auf derproductionVerzweigung erfolgt.
- Wird ausgelöst, wenn ein
Der
envKnoten definiert benannte Umgebungsvariablen (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- Der Umgebungsvariable
AZURE_WEBAPP_NAMEwird der WertDotNetWebzugewiesen. - Der Umgebungsvariable
AZURE_WEBAPP_PACKAGE_PATHwird der Wert'.'zugewiesen. - Der Umgebungsvariable
DOTNET_VERSIONwird der Wert'6.0.401'zugewiesen. Auf die Umgebungsvariable wird später verwiesen, um diedotnet-versionactions/setup-dotnet@v3GitHub-Aktion anzugeben.
- Der Umgebungsvariable
Der
jobsKnoten erstellt die Schritte für den Workflow.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'- Es gibt einen einzigen Auftrag,
publish, der auf der neuesten Version von Ubuntu ausgeführt wird. - Die
actions/setup-dotnet@v3GitHub-Aktion wird verwendet, um das .NET SDK mit der angegebenen Version aus derDOTNET_VERSIONUmgebungsvariable einzurichten. - Der
dotnet restoreBefehl wird aufgerufen. - Der
dotnet buildBefehl wird aufgerufen. - Der
dotnet publishBefehl wird aufgerufen. - Der
dotnet testBefehl wird aufgerufen. - Die
azure/webapps-deploy@v2GitHub-Action stellt die App mit dem angegebenenpublish-profileundpackagebereit.- Der
publish-profileSchlüssel wird aus demAZURE_PUBLISH_PROFILERepositoryschlüssel zugewiesen.
- Der
- Es gibt einen einzigen Auftrag,
Erstellen eines Workflowstatusabzeichens
Es ist üblich, dass GitHub-Repositorys über eine README.md Datei im Stammverzeichnis des Repositoryverzeichnisses verfügen. Ebenso ist es schön, den neuesten Status für verschiedene Workflows zu melden. Alle Workflows können ein Statussignal generieren, das in der README.md Datei visuell ansprechend ist. So fügen Sie das Workflow-Status-Abzeichen hinzu:
Wählen Sie im GitHub-Repository die Navigationsoption "Aktionen " aus.
Alle Repository-Workflows werden auf der linken Seite angezeigt. Wählen Sie den gewünschten Workflow aus und klicken Sie dann auf die Schaltfläche mit den Auslassungspunkten (...).
- Die Schaltfläche mit den Auslassungspunkten (...) erweitert die Menüoptionen für den ausgewählten Workflow.
Wählen Sie die Menüoption "Statussignal erstellen" aus .
Wählen Sie die Schaltfläche "Statusabzeichen-Markdown kopieren" aus.
Fügen Sie das Markdown in die README.md Datei ein, speichern Sie die Datei, übernehmen Sie die Änderungen, und übertragen Sie die Änderungen.
Weitere Informationen finden Sie unter Hinzufügen eines Workflow-Status-Symbols.
Beispiel für das Veröffentlichen eines Workflowstatussignals
| Vorübergehend | Mangels | Kein Status |
|---|---|---|
|
|
|
|