Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten får du lära dig hur du skapar ett GitHub-arbetsflöde för att publicera din .NET-app från källkoden. Att automatiskt publicera .NET-appen från GitHub till ett mål kallas för en kontinuerlig distribution (CD). Det finns många möjliga mål för att publicera ett program. I den här snabbstarten publicerar du till Azure.
Förutsättningar
- Ett GitHub-konto.
- En .NET-källkodslagringsplats.
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt.
- En ASP.NET Core-webbapplikation.
- En Azure App Service resurs.
Lägg till publiceringsprofil
Om du vill publicera appen till Azure öppnar du Azure-portalen för App Service-instansen av programmet. I resursöversiken väljer du Hämta publiceringsprofil och sparar *.PublishSetting-filen lokalt.
Varning
Publiceringsprofilen innehåller känslig information, till exempel autentiseringsuppgifter för åtkomst till din Azure App Service-resurs. Den här informationen bör alltid behandlas mycket noggrant.
Gå till Inställningar på GitHub-lagringsplatsen och välj Hemligheter på den vänstra navigeringsmenyn. Välj Ny lagringsplatshemlighet för att lägga till en ny hemlighet.
Ange AZURE_PUBLISH_PROFILE som Namn och klistra in XML-innehållet från publiceringsprofilen i textområdet Värde . Välj Lägg till hemlighet. Mer information finns i Krypterade hemligheter.
Skapa en arbetsflödesfil
På GitHub-lagringsplatsen lägger du till en ny YAML-fil i katalogen .github/workflows . Välj ett meningsfullt filnamn, något som tydligt anger vad arbetsflödet är avsett att göra. Mer information finns i Arbetsflödesfil.
Viktigt!
GitHub kräver att arbetsflödets sammansättningsfiler placeras i katalogen .github/workflows .
Arbetsflödesfiler definierar vanligtvis en sammansättning av en eller flera GitHub-åtgärder via jobs.<job_id>/steps[*]. Mer information finns i Arbetsflödessyntax för GitHub Actions.
Skapa en ny fil med namnet publish-app.yml, kopiera och klistra in följande YML-innehåll i den:
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'
I föregående arbetsflödessammansättning:
name: publishdefinierar namnet, "publicera" kommer att visas i arbetsflödets statusmärken.name: publishNoden
onanger de händelser som utlöser arbetsflödet:on: push: branches: [ production ]- Utlöses när en
pushinträffar på grenenproduction.
- Utlöses när en
Noden
envdefinierar namngivna miljövariabler (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- Miljövariabeln
AZURE_WEBAPP_NAMEtilldelas värdetDotNetWeb. - Miljövariabeln
AZURE_WEBAPP_PACKAGE_PATHtilldelas värdet'.'. - Miljövariabeln
DOTNET_VERSIONtilldelas värdet'6.0.401'. Miljövariabeln refereras senare till för att angedotnet-versionactions/setup-dotnet@v3GitHub-åtgärden.
- Miljövariabeln
Noden
jobsskapar de steg som arbetsflödet ska utföra.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'- Det finns ett enda jobb med namnet
publishsom körs på den senaste versionen av Ubuntu. -
actions/setup-dotnet@v3GitHub-åtgärden används för att konfigurera .NET SDK med den angivna versionen frånDOTNET_VERSIONmiljövariabeln. - Kommandot
dotnet restoreanropas. - Kommandot
dotnet buildanropas. - Kommandot
dotnet publishanropas. - Kommandot
dotnet testanropas. -
azure/webapps-deploy@v2GitHub-åtgärden distribuerar appen med angivetpublish-profileochpackage.-
publish-profileTilldelas från lagringsplatsensAZURE_PUBLISH_PROFILEhemlighet.
-
- Det finns ett enda jobb med namnet
Skapa ett statusmärke för arbetsflödet
Det är vanligt att GitHub-lagringsplatser har en README.md fil i roten i lagringsplatsens katalog. På samma sätt är det bra att rapportera den senaste statusen för olika arbetsflöden. Alla arbetsflöden kan generera ett statusmärke som är visuellt tilltalande i README.md-filen . Så här lägger du till statusikonen för arbetsflödet:
Från GitHub-lagringsplatsen väljer du navigeringsalternativet Åtgärder .
Alla arbetsflöden för lagringsplatser visas till vänster, välj önskat arbetsflöde och ellipsknappen (...).
- Ellipsknappen (...) expanderar menyalternativen för det valda arbetsflödet.
Välj menyalternativet Skapa statusikon .
Välj knappen Kopiera statusikonen Markdown .
Klistra in Markdown i filen README.md , spara filen, checka in och push-överföra ändringarna.
Mer information finns i Lägga till ett statusmärke för arbetsflödet.
Exempel på statusmärke för publiceringsarbetsflöde
| Övergång | Misslyckande | Ingen status |
|---|---|---|
|
|
|
|