Aller au contenu principal

Mise à jour d'une image Appveyor Azure

Electron CI sur Windows utilise AppVeyor, qui à son tour utilise les images VM d'Azure pour s'exécuter. Parfois, ces images de VM doivent être mises à jour en raison des changements dans les exigences de Chromium. Pour effectuer ces mises à jour vous aurez besoin de PowerShell et du module Azure PowerShell.

Parfois, la mise à jour de ces images est nécessaire suite à des changements dans Chromium ou d'autres modifications des critères de compilation.

Exemple de cas d'utilisation :

* Supposons que nous ayons besoin de `VS15.9` et que `VS15.7` soit installé; cela nous obligerait à mettre à jour une image Azure.
  1. Identifiez l'image que vous souhaitez modifier.

    • Dans appveyor.yml, l'image est identifiée par la propriété image.
      • Les noms utilisés correspondent aux "images" définie pour un cloud de compilation, par exemple le libcc-20 cloud.
    • Trouvez l'image que vous souhaitez modifier dans lecloud de build et notez le VHD Blob Path pour cette image, qui est la valeur de cette clé correspondante.
      • Vous aurez besoin de ce chemin URI pour copier dans une nouvelle image.
    • Vous aurez également besoin du nom du compte de stockage qui est étiqueté dans AppVeyor comme le Disk Storage Account Name
  2. Obtenir la clé du compte de stockage Azure

    • Connectez-vous à Azure en utilisant les identifiants stockés dans LastPass (sous Azure Enterprise) puis trouvez le compte de stockage correspondant au nom trouvé dans AppVeyor.
      • Exemple, pour appveyorlibccbuilds Nom du compte de stockage sur disque vous recherchez appveyorlibccbuilds dans la liste des comptes de stockage @ Accueil < Storage Accounts
        • Cliquez dessus et cherchez Access Keys, ensuite vous pouvez utiliser n'importe laquelle des clés présentes dans la liste.
  3. Obtenir l'URI complet de l'image de la machine virtuelle à partir d'Azure

    • Accédez aux < de stockage < $ACCT_NAME < Blobs < Images
      • Dans la liste suivante, recherchez le nom du chemin d'accès VHD que vous avez obtenu depuis Appveyor puis cliquez dessus.
        • Copiez l'URL entière depuis le haut de la fenêtre suivante.
  4. Copiez l'image en utilisant le script Copier l'image maître PowerShell.

    • Il est essentiel de copier la VM car si vous faites tourner une VM contre une image cette l'image ne peut pas en même temps être utilisée par AppVeyor.
    • Utilisez le nom du compte de stockage, la clé et l'URI obtenus auprès d'Azure pour exécuter ce script.
      • Reportez-vous à l'étape 3 pour l'URI & lorsque vous y êtes invité, appuyez sur Entrée pour utiliser le même compte de stockage que la destination.
      • Utiliser le nom du conteneur de destination par défaut (images)
      • En outre, lorsque vous nommez la copie, utilisez un nom qui indique ce que la nouvelle image contiendra (si cela a changé) et un horodatage.
        • Ex. libcc-20core-vs2017-15.9-2019-04-15.vhd
    • Allez dans Azure et obtenez l'URI de l'image nouvellement créée comme décrit à l'étape précédente
  5. Faites tourner une nouvelle VM en utilisant Créer une VM Master à partir de VHD PowerShell.

    • Depuis PowerShell, exécutez le fichier ps1 avec ./create_master_vm_from_vhd.ps1
    • Vous aurez besoin des informations d'identification disponibles dans la définition du cloud de build AppVeyor.
      • Ceci comprend :
        • Client ID
        • Client Secret
        • Tenant ID
        • Subscription ID
        • Resource Group
        • Virtual Network
    • Vous devrez également préciser
      • Master VM name - un nom unique pour identifier la VM temporaire
      • Master VM size - utilisez Standard_F32s_v2
      • Master VHD URI - utiliser URI obtenu à fin de l'étape précédente
      • Location utilise la localisation East US
  6. Reconnectez-vous à Azure et trouvez la VM que vous venez de créer dans Home < Virtual Machines < $YOUR_NEW_VM

    • Vous pouvez télécharger un fichier RDP (Remote Desktop) pour accéder à la VM.
  7. En utilisant Microsoft Remote Desktop, cliquez sur Connect pour vous connecter à la VM.

    • Les identifiants pour se connecter à la VM se trouvent dans LastPass sous les identifiants de AppVeyor Enterprise master VM.
  8. Modifiez la VM si nécessaire.

  9. Arrêtez la VM puis supprimez-la dans Azure.

  10. Ajoutez la nouvelle image aux paramètres d'Appveyor Cloud ou modifiez une image existante pour pointer vers le nouveau VHD.