Anteckning
Å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: publish
- Noden - 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 | 
|---|---|---|
|  |  |  | 
 
              
              