Udostępnij za pomocą


Szybki start: tworzenie przepływu pracy usługi GitHub w celu opublikowania aplikacji

W tym przewodniku Szybki start dowiesz się, jak utworzyć przepływ pracy usługi GitHub w celu opublikowania aplikacji .NET na podstawie kodu źródłowego. Automatyczne publikowanie aplikacji .NET z usługi GitHub do miejsca docelowego jest określane jako ciągłe wdrażanie (CD). Istnieje wiele możliwych platform do opublikowania aplikacji. W ramach tego szybkie przewodnika opublikujesz aplikację na platformie Azure.

Wymagania wstępne

  • Konto usługi GitHub.
  • Repozytorium kodu źródłowego platformy .NET.
  • Konto Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
  • Aplikacja internetowa platformy ASP.NET Core.
  • Zasób usługi Azure App Service.

Dodawanie profilu publikowania

Aby opublikować aplikację na Azure, otwórz portal Azure dla wystąpienia usługi App Service tej aplikacji. W zasobie Przegląd wybierz Pobierz profil publikowania i zapisz plik *.PublishSetting lokalnie.

Witryna Azure Portal, zasób usługi App Service: uzyskiwanie profilu publikowania

Ostrzeżenie

Profil publikowania zawiera poufne informacje, takie jak poświadczenia na potrzeby uzyskiwania dostępu do zasobu usługi Azure App Service. Te informacje powinny być zawsze traktowane bardzo ostrożnie.

W repozytorium GitHub przejdź do pozycji Ustawienia i wybierz pozycję Wpisy tajne z menu nawigacji po lewej stronie. Wybierz opcję Nowa tajemnica repozytorium, aby dodać nową tajemnicę.

GitHub / Ustawienia / Tajemnica: Dodaj nową tajemnicę repozytorium

Wprowadź AZURE_PUBLISH_PROFILE jako nazwę i wklej zawartość XML z profilu publikowania w obszarze tekstowym Wartość . Wybierz przycisk Add secret (Dodaj wpis tajny). Aby uzyskać więcej informacji, zobacz Zaszyfrowane wpisy tajne.

Tworzenie pliku przepływu pracy

W repozytorium GitHub dodaj nowy plik YAML do katalogu .github/workflows . Wybierz zrozumiałą nazwę pliku, co wyraźnie wskaże, co ma zrobić przepływ pracy. Aby uzyskać więcej informacji, zobacz Plik przepływu pracy.

Ważne

Usługa GitHub wymaga, aby pliki kompozycji przepływu pracy zostały umieszczone w katalogu .github/workflows .

Pliki przepływu pracy zwykle definiują kompozycję co najmniej jednej akcji usługi GitHub za pośrednictwem elementu jobs.<job_id>/steps[*]. Aby uzyskać więcej informacji, zobacz Składnia przepływu pracy dla funkcji GitHub Actions.

Utwórz nowy plik o nazwie publish-app.yml, skopiuj i wklej do niego następującą zawartość 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'

W poprzedniej kompozycji przepływu pracy:

  • name: publish definiuje nazwę, "publikuj" pojawi się na wskaźnikach stanu przepływu pracy.

    name: publish
    
  • Węzeł on oznacza zdarzenia, które wyzwalają przepływ pracy:

    on:
      push:
        branches: [ production ]
    
    • Jest wyzwalane, gdy element push pojawia się na gałęzi production.
  • Węzeł env definiuje nazwane zmienne środowiskowe (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
    
    • Zmienna środowiskowa AZURE_WEBAPP_NAME ma przypisaną wartość DotNetWeb.
    • Zmienna środowiskowa AZURE_WEBAPP_PACKAGE_PATH ma przypisaną wartość '.'.
    • Zmienna środowiskowa DOTNET_VERSION ma przypisaną wartość '6.0.401'. Później odwołuje się do zmiennej środowiskowej dotnet-version w celu określenia actions/setup-dotnet@v3 akcji usługi GitHub.
  • Węzeł jobs rozwija kroki, które przepływ pracy ma wykonać.

    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'
    
    • Istnieje jedno zadanie o nazwie publish , które zostanie uruchomione w najnowszej wersji systemu Ubuntu.
    • Akcja actions/setup-dotnet@v3 usługi GitHub służy do konfigurowania zestawu .NET SDK z określoną wersją ze zmiennej środowiskowej DOTNET_VERSION .
    • Polecenie dotnet restore jest wywoływane.
    • Polecenie dotnet build jest wywoływane.
    • Wywoływane jest polecenie dotnet publish.
    • Polecenie dotnet test jest wywoływane.
    • Akcja azure/webapps-deploy@v2 usługi GitHub wdraża aplikację przy użyciu danej metody publish-profile i package.
      • Element publish-profile jest przypisywany z wpisu tajnego AZURE_PUBLISH_PROFILE repozytorium.

Znaczek stanu przepływu pracy

Powszechną praktyką w repozytoriach GitHub jest posiadanie pliku README.md w katalogu głównym repozytorium. Podobnie miło jest zgłosić najnowszy stan różnych procesów roboczych. Wszystkie przepływy pracy mogą wygenerować wskaźnik stanu, który jest wizualnie atrakcyjny w pliku README.md . Aby dodać wskaźnik stanu przepływu pracy:

  1. W repozytorium GitHub wybierz opcję nawigacji Akcje .

  2. Wszystkie przepływy pracy repozytorium są wyświetlane po lewej stronie, wybierz żądany przepływ pracy i przycisk z wielokropkiem (...).

    • Przycisk wielokropka (...) rozwija opcje menu dla wybranego przepływu pracy.
  3. Wybierz opcję menu Utwórz odznakę stanu.

    GitHub: Utwórz odznakę statusu

  4. Wybierz przycisk Skopiuj odznakę statusu w Markdown.

    GitHub: kopiuj znaczek statusu Markdown

  5. Wklej znacznik Markdown do pliku README.md , zapisz plik, zatwierdź i wypchnij zmiany.

Aby uzyskać więcej informacji, zobacz Dodawanie wskaźnika stanu przepływu pracy.

Przykładowy wskaźnik stanu przepływu pracy publikowania

Przekazywanie Nieudany Brak statusu
GitHub: opublikować odznakę przechodzenia GitHub: wskaźnik błędu GitHub: opublikować odznakę braku stanu

Zobacz także

Dalsze kroki