Partager via


Démarrage rapide : Créer un flux de travail GitHub pour publier une application

Dans ce guide de démarrage rapide, vous allez apprendre à créer un workflow GitHub pour publier votre application .NET à partir du code source. La publication automatique de votre application .NET à partir de GitHub vers une destination est appelée déploiement continu (CD). Il existe de nombreuses destinations possibles pour publier une application, dans ce guide de démarrage rapide, vous allez publier sur Azure.

Prerequisites

Ajouter un profil de publication

Pour publier l’application sur Azure, ouvrez le portail Azure pour l’instance App Service de l’application. Dans la vue d’ensemble de la ressource, sélectionnez Obtenir le profil de publication et enregistrez le *.PublishSetting localement.

Portail Azure, ressource App Service : Obtenir un profil de publication

Avertissement

Le profil de publication contient des informations sensibles, telles que des informations d’identification pour accéder à votre ressource Azure App Service. Ces informations doivent toujours être traitées très soigneusement.

Dans le référentiel GitHub, accédez à Paramètres et sélectionnez Secrets dans le menu de navigation de gauche. Sélectionnez Nouveau secret de référentiel pour ajouter un nouveau secret.

GitHub / Paramètres / Secret : Ajouter un nouveau secret de référentiel

Entrez AZURE_PUBLISH_PROFILE comme Nom, et collez le contenu XML du profil de publication dans la zone de texte Valeur. Sélectionnez Ajouter un secret. Pour plus d’informations, consultez Secrets chiffrés.

Créer un fichier de flux de travail

Dans le référentiel GitHub, ajoutez un nouveau fichier YAML au répertoire .github/workflows . Choisissez un nom de fichier explicite, ce qui indiquera clairement ce que le flux de travail est destiné à faire. Pour plus d’informations, consultez le fichier de flux de travail.

Important

GitHub nécessite que les fichiers de composition de flux de travail soient placés dans le répertoire .github/workflows .

Les fichiers de flux de travail définissent généralement une composition d’une ou plusieurs actions GitHub via le jobs.<job_id>/steps[*]. Pour plus d’informations, consultez la syntaxe du flux de travail pour GitHub Actions.

Créez un fichier nommé publish-app.yml, copiez et collez le contenu YML suivant :

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'

Dans la composition du flux de travail précédente :

  • Le nom est défini par name: publish, et « publier » apparaîtra dans les badges de statut du flux de travail.

    name: publish
    
  • Le on nœud signifie les événements qui déclenchent le flux de travail :

    on:
      push:
        branches: [ production ]
    
    • Déclenché lorsqu’un push se produit dans la branche production.
  • Le env nœud définit des variables d’environnement nommées (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
    
    • La variable AZURE_WEBAPP_NAME d’environnement est affectée à la valeur DotNetWeb.
    • La variable AZURE_WEBAPP_PACKAGE_PATH d’environnement est affectée à la valeur '.'.
    • La variable DOTNET_VERSION d’environnement est affectée à la valeur '6.0.401'. La variable d’environnement est ultérieurement référencée pour spécifier l’action dotnet-versionactions/setup-dotnet@v3 GitHub.
  • Le jobs nœud génère les étapes à suivre pour le flux de travail.

    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'
    
    • Il existe un seul travail nommé publish qui s’exécutera sur la dernière version d’Ubuntu.
    • L’action actions/setup-dotnet@v3 GitHub est utilisée pour configurer le Kit de développement logiciel (SDK) .NET avec la version spécifiée à partir de la variable d’environnement DOTNET_VERSION .
    • La dotnet restore commande est appelée.
    • La dotnet build commande est appelée.
    • La dotnet publish commande est appelée.
    • La dotnet test commande est appelée.
    • L’action azure/webapps-deploy@v2 GitHub déploie l’application avec les valeurs données publish-profile et package.
      • Le publish-profile est attribué à partir du secret du dépôt AZURE_PUBLISH_PROFILE.

Créer un badge d’état de flux de travail

Il est courant que les référentiels GitHub disposent d’un fichier README.md à la racine du répertoire du référentiel. De même, il est agréable de signaler l’état le plus récent pour différents flux de travail. Tous les flux de travail peuvent générer un badge d’état, visuellement attrayant dans le fichier README.md . Pour ajouter le badge d’état du flux de travail :

  1. Dans le référentiel GitHub, sélectionnez l’option de navigation Actions .

  2. Tous les flux de travail du référentiel s’affichent à gauche, sélectionnez le flux de travail souhaité et le bouton ellipsis (...).

    • Le bouton d'ellipse (...) augmente les options de menu du flux de travail sélectionné.
  3. Sélectionnez l’option de menu Créer un badge d’état .

    GitHub : Créer un badge d’état

  4. Sélectionnez le bouton Copier le badge d'état en Markdown.

    GitHub : Copier le badge d’état Markdown

  5. Collez le Markdown dans le fichier README.md, enregistrez le fichier, commitez et envoyez les modifications.

Pour plus d’informations, consultez Ajout d’un badge d’état de flux de travail.

Exemple de badge d’état du flux de travail de publication

Passage Échec Aucun état
GitHub : publier un badge de passage GitHub : publier un badge d'échec GitHub : publier un badge sans statut

Voir aussi

Étapes suivantes