Rövid útmutató: GitHub-munkafolyamat létrehozása alkalmazás közzétételéhez

Ebben a rövid útmutatóban megtudhatja, hogyan hozhat létre GitHub-munkafolyamatot a .NET-alkalmazás forráskódból való közzétételéhez. A .NET-alkalmazás GitHubról egy célhelyre történő automatikus közzétételét folyamatos üzembe helyezésnek (CD) nevezzük. Az alkalmazás közzétételének számos lehetséges célja van. Ebben a rövid útmutatóban közzé fogja tenni az Azure-ban.

Előfeltételek

  • Egy GitHub-fiók.
  • .NET-forráskódtár.
  • Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
  • Egy ASP.NET Core-webalkalmazás.
  • Egy Azure-alkalmazás szolgáltatáserőforrás.

Közzétételi profil hozzáadása

Az alkalmazás Azure-ban való közzétételéhez nyissa meg az Azure Portalt az alkalmazás App Service-példányához. Az erőforrás áttekintésében válassza a Közzétételi profil lekérése és a *mentése lehetőséget. PublishSetting fájl helyileg.

Azure Portal, App Service resource: Get publish profile

Figyelmeztetés

A közzétételi profil bizalmas információkat tartalmaz, például a Azure-alkalmazás Szolgáltatás erőforrás eléréséhez szükséges hitelesítő adatokat. Ezeket az információkat mindig nagyon óvatosan kell kezelni.

A GitHub-adattárban navigáljon a Gépház, és válassza a bal oldali navigációs menü Titkos kulcsok elemét. Új titkos kód hozzáadásához válassza az Új tárházi titkos kulcs lehetőséget.

GitHub / Settings / Secret: Add new repository secret

Adja meg AZURE_PUBLISH_PROFILE a nevet, és illessze be a közzétételi profil XML-tartalmát az Érték szövegterületre. Válassza az Add secret (Titkos kód hozzáadása) lehetőséget. További információ: Titkosított titkos kódok.

Munkafolyamat-fájl létrehozása

A GitHub-adattárban adjon hozzá egy új YAML-fájlt a .github/workflows könyvtárhoz. Válasszon egy értelmezhető fájlnevet, amely egyértelműen jelzi a munkafolyamat célját. További információ: Munkafolyamat-fájl.

Fontos

A GitHub megköveteli, hogy a munkafolyamat-összeállítási fájlokat a .github/workflows könyvtárba kell helyezni.

A munkafolyamat-fájlok általában egy vagy több GitHub-művelet összetételét határozzák meg a jobs.<job_id>/steps[*]. További információ: A GitHub Actions munkafolyamat-szintaxisa.

Hozzon létre egy publish-app.yml nevű új fájlt, másolja és illessze be a következő YML-tartalmat:

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'

Az előző munkafolyamat-összeállításban:

  • A name: publish "publish" (közzététel) nevet határozza meg a munkafolyamat állapotjelvényeiben.

    name: publish
    
  • A on csomópont a munkafolyamatot kiváltó eseményeket jelöli:

    on:
      push:
        branches: [ production ]
    
    • Akkor aktiválódik, ha az push ágon történik.production
  • A env csomópont nevesített környezeti változókat (env var) határoz meg.

    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
    
    • A környezeti változóhoz AZURE_WEBAPP_NAME hozzá van rendelve az érték DotNetWeb.
    • A környezeti változóhoz AZURE_WEBAPP_PACKAGE_PATH hozzá van rendelve az érték '.'.
    • A környezeti változóhoz DOTNET_VERSION hozzá van rendelve az érték '6.0.401'. A környezeti változóra később hivatkozunk a dotnet-versionactions/setup-dotnet@v3 GitHub-művelet megadásához.
  • A jobs csomópont összeállítja a munkafolyamat lépéseit.

    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'
    
    • Egyetlen feladat van elnevezve publish , amely az Ubuntu legújabb verzióján fog futni.
    • A actions/setup-dotnet@v3 GitHub-művelet a .NET SDK beállítására szolgál a környezeti változó megadott DOTNET_VERSION verziójával.
    • A dotnet restore parancs meghívása.
    • A dotnet build parancs meghívása.
    • A dotnet publish parancs meghívása.
    • A dotnet test parancs meghívása.
    • A azure/webapps-deploy@v2 GitHub-művelet üzembe helyezi az alkalmazást a megadott publish-profile és package.
      • A publish-profile rendszer az AZURE_PUBLISH_PROFILE adattár titkos kódjából van hozzárendelve.

Munkafolyamat állapotjelvényének létrehozása

A GitHub-adattárak általános elnevezése, hogy egy README.md fájl található az adattár könyvtárának gyökerében. Hasonlóképpen, jó, ha a különböző munkafolyamatok legújabb állapotát jelenti. Minden munkafolyamat létrehozhat egy állapotjelvényt, amely vizuálisan vonzó a README.md fájlban. A munkafolyamat állapotjelvényének hozzáadása:

  1. A GitHub-adattárban válassza a Műveletek navigációs lehetőséget.

  2. Az összes adattár-munkafolyamat megjelenik a bal oldalon, válassza ki a kívánt munkafolyamatot és a három pont (...) gombot.

    • A három pont (...) gomb kibontja a kijelölt munkafolyamat menübeállításait.
  3. Válassza az Állapotjelvény létrehozása menüt.

    GitHub: Create status badge

  4. Válassza a Másolás állapotjelvény Markdown gombját.

    GitHub: Copy status badge Markdown

  5. Illessze be a Markdownt a README.md fájlba, mentse a fájlt, véglegesítse és küldje el a módosításokat.

További információ: Munkafolyamat-állapotjelvény hozzáadása.

Példa a munkafolyamat állapotjelvényének közzétételére

Elhaladó Sikertelen Nincs állapot
GitHub: publish passing badge GitHub: publish failing badge GitHub: publish no-status badge

Lásd még

Következő lépések