Partager via


Démarrage rapide : Déployer des fichiers Bicep à l’aide de GitHub Actions

GitHub Actions est une suite de fonctionnalités dans GitHub permettant d’automatiser vos flux de travail de développement logiciel. Dans ce guide de démarrage rapide, vous utiliserez GitHub Actions pour le déploiement Azure Resource Manager afin d’automatiser le déploiement d’un fichier Bicep sur Azure.

Vous y trouverez également une brève présentation des actions GitHub pour les fichiers Bicep. Pour plus d’informations sur la configuration des actions de GitHub et du projet, consultez Déployer des ressources Azure à l’aide de Bicep et de GitHub Actions.

Prérequis

Créer un groupe de ressources

Créez un groupe de ressources. Plus tard dans ce démarrage rapide, vous déployez votre fichier Bicep dans ce groupe de ressources.

az group create -n exampleRG -l westus

Générer les informations d’identification du déploiement

Pour utiliser l’action de connexion Azure avec OIDC, vous devez configurer des informations d’identification d’identité fédérée sur une application Microsoft Entra ou une identité managée affectée par l’utilisateur.

Option 1 : application Microsoft Entra

Option 2 : identité managée affectée par l’utilisateur

Configurer les secrets GitHub

Vous devez fournir l’ID de client, l’ID d’annuaire (locataire) et l’ID d’abonnement de votre application à l’action de connexion. Vous pouvez fournir ces valeurs directement dans le workflow ou les stocker dans des secrets GitHub et les référencer dans votre workflow. L’enregistrement des valeurs en tant que secrets GitHub est l’option la plus sécurisée.

  1. Dans GitHub, accédez à votre dépôt.

  2. Sélectionnez Sécurité > Secrets et variables > Actions.

    Capture d’écran de l’ajout d’un secret

  3. Sélectionnez New repository secret (Nouveau secret de dépôt).

    Remarque

    Pour améliorer la sécurité des flux de travail dans des référentiels publics, utilisez des secrets d’environnement plutôt que des secrets de référentiel. Si l’environnement nécessite une approbation, un travail ne peut pas accéder aux secrets d’environnement tant que l’un des réviseurs requis ne l’approuve pas.

  4. Créez des secrets pour AZURE_CLIENT_ID, AZURE_TENANT_ID et AZURE_SUBSCRIPTION_ID. Copiez ces valeurs à partir de votre application Microsoft Entra ou de l’identité managée affectée par l’utilisateur pour vos secrets GitHub :

    Secret GitHub Application Microsoft Entra ou identité managée affectée par l’utilisateur
    AZURE_CLIENT_ID ID client
    AZURE_SUBSCRIPTION_ID ID d’abonnement
    AZURE_TENANT_ID ID de l’annuaire (locataire)

    Remarque

    Pour des raisons de sécurité, nous vous recommandons d’utiliser des secrets GitHub plutôt que de transmettre des valeurs directement au flux de travail.

Ajouter un fichier Bicep

Ajoutez un fichier Bicep à votre référentiel GitHub. Le fichier Bicep suivant crée un compte de stockage :

@minLength(3)
@maxLength(11)
param storagePrefix string

@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_RAGRS'
  'Standard_ZRS'
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GZRS'
  'Standard_RAGZRS'
])
param storageSKU string = 'Standard_LRS'

param location string = resourceGroup().location

var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'

resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
  name: uniqueStorageName
  location: location
  sku: {
    name: storageSKU
  }
  kind: 'StorageV2'
  properties: {
    supportsHttpsTrafficOnly: true
  }
}

output storageEndpoint object = stg.properties.primaryEndpoints

Le fichier Bicep requiert un paramètre appelé storagePrefix avec 3 à 11 caractères.

Vous pouvez placer le fichier n’importe où dans le référentiel. L’exemple de workflow dans la section suivante suppose que le fichier de modèle est nommé main.bicep et qu’il est stocké à la racine de votre dépôt.

Créer un workflow

Un flux de travail définit les étapes à exécuter lors du déclenchement. Il s’agit d’un fichier YAML (.yml) dans le chemin d’accès .github/workflows/ de votre référentiel. L’extension du fichier de workflow peut être .yml ou .yaml.

Pour créer un flux de travail, vous pouvez suivre les étapes suivantes :

  1. À partir de votre référentiel GitHub, sélectionnez Actions dans le menu supérieur.

  2. Sélectionnez Nouveau workflow.

  3. Sélectionnez Configurer vous-même un workflow.

  4. Renommez le fichier de workflow si vous préférez utiliser un autre nom que main.yml. Par exemple : deployBicepFile.yml.

  5. Remplacez le contenu du fichier yml par le code suivant :

    on: [push]
    name: Azure ARM
    permissions:
      id-token: write
      contents: read
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
    
          # Checkout code
        - uses: actions/checkout@main
    
          # Log into Azure
        - uses: azure/login@v2
          with:
            client-id: ${{ secrets.AZURE_CLIENT_ID }}
            tenant-id: ${{ secrets.AZURE_TENANT_ID }}
            subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
    
          # Deploy Bicep file
        - name: deploy
          uses: azure/arm-deploy@v1
          with:
            subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
            resourceGroupName: ${{ secrets.AZURE_RG }}
            template: ./main.bicep
            parameters: 'storagePrefix=mystore storageSKU=Standard_LRS'
            failOnStdErr: false
    
  6. Sélectionnez Valider les modifications.

  7. Sélectionnez Valider directement sur la branche primaire.

  8. Sélectionnez Valider un nouveau fichier (ou Valider les modifications).

La mise à jour du fichier de flux de travail ou du fichier bicep déclenche le flux de travail. Le flux de travail démarre juste après la validation des modifications.

Vérifier l’état du workflow

  1. Sélectionnez l’onglet Actions. Vous y voyez un flux de travail Créer deployBicepFile.yml. L’exécution du workflow prend 1 à 2 minutes.
  2. Sélectionnez le flux de travail pour l’ouvrir, puis vérifiez que Status a la valeur Success.

Nettoyer les ressources

Lorsque votre groupe de ressource et référentiel ne sont plus nécessaires, nettoyez les ressources que vous avez déployées en supprimant le groupe de ressources et votre référentiel GitHub.

az group delete --name exampleRG

Étapes suivantes