Rychlý start: Vytvoření pracovního postupu GitHubu pro publikování aplikace

V tomto rychlém startu se dozvíte, jak vytvořit pracovní postup GitHubu pro publikování aplikace .NET ze zdrojového kódu. Automatické publikování aplikace .NET z GitHubu do cíle se označuje jako průběžné nasazování (CD). Aplikaci můžete publikovat mnoha možnými cíli. V tomto rychlém startu publikujete do Azure.

Požadavky

  • Účet GitHub.
  • Úložiště zdrojového kódu .NET.
  • Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
  • Webová aplikace ASP.NET Core.
  • Prostředek služby Aplikace Azure.

Přidání profilu publikování

Pokud chcete aplikaci publikovat do Azure, otevřete web Azure Portal pro instanci služby App Service aplikace. V přehledu prostředků vyberte Získat profil publikování a uložte *. Soubor PublishSetting místně.

Azure Portal, App Service resource: Get publish profile

Upozorňující

Profil publikování obsahuje citlivé informace, jako jsou přihlašovací údaje pro přístup k prostředku služby Aplikace Azure Service. Tyto informace by měly být vždy považovány za velmi pečlivě.

V úložišti GitHub přejděte na Nastavení a v levé navigační nabídce vyberte Tajné kódy. Vyberte Nový tajný klíč úložiště a přidejte nový tajný kód.

GitHub / Settings / Secret: Add new repository secret

Zadejte AZURE_PUBLISH_PROFILE jako název a vložte obsah XML z profilu publikování do textové oblasti Hodnota . Vyberte Add secret (Přidat tajný kód). Další informace najdete v tématu Šifrované tajné kódy.

Vytvoření souboru pracovního postupu

V úložišti GitHub přidejte do adresáře .github/workflows nový soubor YAML. Zvolte smysluplný název souboru, který jasně indikuje, co má pracovní postup udělat. Další informace naleznete v souboru pracovního postupu.

Důležité

GitHub vyžaduje, aby se soubory složení pracovního postupu umístily do adresáře .github/workflows .

Soubory pracovního postupu obvykle definují složení jedné nebo více akcí GitHubu prostřednictvím .jobs.<job_id>/steps[*] Další informace najdete v syntaxi pracovního postupu pro GitHub Actions.

Vytvořte nový soubor s názvem publish-app.yml, zkopírujte a vložte do něj následující obsah YML:

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'

V předchozím složení pracovního postupu:

  • Definuje name: publish název, "publish" se zobrazí v odznácích stavu pracovního postupu.

    name: publish
    
  • Uzel on označuje události, které aktivují pracovní postup:

    on:
      push:
        branches: [ production ]
    
    • Aktivuje se při push výskytu production ve větvi.
  • Uzel env definuje pojmenované proměnné prostředí (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
    
    • Proměnná AZURE_WEBAPP_NAME prostředí má přiřazenou hodnotu DotNetWeb.
    • Proměnná AZURE_WEBAPP_PACKAGE_PATH prostředí má přiřazenou hodnotu '.'.
    • Proměnná DOTNET_VERSION prostředí má přiřazenou hodnotu '6.0.401'. Na proměnnou prostředí se později odkazuje, aby se určila dotnet-versionactions/setup-dotnet@v3 akce GitHubu.
  • Uzel jobs sestaví kroky, které má pracovní postup provést.

    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'
    
    • Existuje jedna úloha s názvem publish , která se spustí na nejnovější verzi Ubuntu.
    • Akce GitHubu actions/setup-dotnet@v3 slouží k nastavení sady .NET SDK se zadanou verzí z DOTNET_VERSION proměnné prostředí.
    • Příkaz dotnet restore je volána.
    • Příkaz dotnet build je volána.
    • Příkaz dotnet publish je volána.
    • Příkaz dotnet test je volána.
    • Akce azure/webapps-deploy@v2 GitHubu nasadí aplikaci s danou publish-profilepackagea .
      • Je publish-profile přiřazený z tajného AZURE_PUBLISH_PROFILE kódu úložiště.

Odznak Vytvoření stavu pracovního postupu

Pro úložiště GitHubu se běžně používá README.md soubor v kořenovém adresáři úložiště. Stejně tak je dobré hlásit nejnovější stav pro různé pracovní postupy. Všechny pracovní postupy můžou generovat odznáček stavu, který je vizuálně atraktivní v souboru README.md . Přidání odznaku stavu pracovního postupu:

  1. V úložišti GitHub vyberte možnost Navigace v akcích .

  2. Všechny pracovní postupy úložiště se zobrazují na levé straně, vyberte požadovaný pracovní postup a tlačítko se třemi tečkami (...).

    • Tlačítko se třemi tečkami (...) rozbalí možnosti nabídky pro vybraný pracovní postup.
  3. Vyberte možnost nabídky Vytvořit stavový odznáček.

    GitHub: Create status badge

  4. Vyberte tlačítko Kopírovat odznáček Markdown.

    GitHub: Copy status badge Markdown

  5. Vložte Markdown do souboru README.md , uložte soubor, potvrďte a nasdílejte změny.

Další informace najdete v tématu Přidání odznaku stavu pracovního postupu.

Ukázkový odznáček stavu publikování pracovního postupu

Předávání Selhání Žádný stav
GitHub: publish passing badge GitHub: publish failing badge GitHub: publish no-status badge

Viz také

Další kroky