Annonce de la préversion de GitHub Actions pour Azure

Publié le 13 août, 2019

Principal Program Manager, Azure DevOps

Mise à jour du 15 octobre 2019 : Remarque : certaines des Actions mentionnées ci-dessous ont été déplacées dans de nouveaux référentiels GitHub pendant la préversion. Reportez-vous au Azure/actions référentiel GitHub pour les instructions actualisées.

Le jeudi 8 août 2019, GitHub a annoncé la préversion de GitHub Actions qui prend en charge de l’intégration et la livraison continues (CI/CD). Actions permet de créer des pipelines simples mais puissants, ainsi que d’automatiser la compilation et la livraison de logiciels. Aujourd’hui, nous annonçons la préversion de GitHub Actions pour Azure.

Ces nouvelles Actions permettent aux développeurs de rapidement générer, tester et déployer du code à partir de dépôts GitHub vers le cloud avec Azure.

Vous pouvez trouver notre premier ensemble d’Actions regroupées dans quatre dépôts GitHub, chacun contenant de la documentation et des exemples pour vous aider à utiliser GitHub pour les opérations de CI/CD et à déployer vos applications sur Azure.

  • azure/actions (login): Authentifiez-vous avec un abonnement Azure.
  • azure/appservice-actions: Déployez des applications sur Azure App Services à l’aide des fonctionnalités Web Apps et Web Apps pour conteneurs.
  • azure/container-actions: Connectez-vous à des registres de conteneurs, dont Docker Hub et Azure Container Registry, ainsi qu’à des images de conteneur de génération et de diffusion.
  • azure/k8s-actions: Connectez-vous à un cluster Kubernetes et déployez sur celui-ci, y compris Azure Kubernetes Service (AKS).

Connectez-vous à Azure

L’action de connexion (azure/actions) vous permet de vous connecter en toute sécurité à un abonnement Azure.

Le processus nécessite l’utilisation d’un principal de service qui peut être généré à l’aide de la l’interface de ligne de commande Azure, conformément aux instructions. Utilisez le secret store intégré de GitHub Actions pour stocker en toute sécurité la sortie de cette commande.

Si votre flux de travail implique des conteneurs, vous pouvez également utiliser les Actions azure/k8s-actions/docker-login et azure/container-actions/aks-set-context pour vous connecter à des services Azure tels que Container Registry et AKS.

Ces Actions vous aident à définir le contexte pour le reste du flux de travail. Par exemple, une fois que vous avez utilisé azure/container-actions/docker-login, l’ensemble d’actions suivant dans le flux de travail peut effectuer des tâches telles que la génération, l’étiquetage et l’envoi d’images de conteneur au Container Registry.

Déployer une application web

Azure App Service est une plateforme gérée pour le déploiement et la mise à l’échelle d’applications web. Vous pouvez facilement déployer votre application web sur Azure App Service à l’aide des Actions azure/appservice-actions/webapp et azure/appservice-actions/webapp-container.

L’action azure/appservice-actions/webapp prend le nom d’application et le chemin d’accès d’une archive (*.zip, *.war, *.jar) ou d’un dossier pour opérer le déploiement.

L’action azure/appservice-actions/webapp-container prend en charge le déploiement d’applications conteneurisées, y compris à plusieurs conteneurs. En la combinant avec l’action azure/container-actions/docker-login, vous pouvez créer un flux de travail complet qui génère une image de conteneur, la transfère au Container Registry, puis la déploie sur Web Apps pour conteneurs.

Déployer sur Kubernetes

azure/k8s-actions/k8s-deploy vous permet de vous connecter à un cluster Kubernetes, de préparer et déployer des manifestes, de remplacer des artefacts, de vérifier l’état de déploiement et de gérer les secrets dans AKS.

L’action azure/k8s-actions/k8s-create-secret permet de créer des objets secrets Kubernetes, qui vous aident à gérer des informations sensibles telles que des mots de passe et jetons d’API. Ces informations incluent notamment le secret du registre Docker qu’AKS pour utilise pour extraire une image privée d’un registre. Cette action permet de renseigner le cluster Kubernetes à l’aide de valeurs du magasin des secrets intégré de GitHub Actions.

Nos Actions centrées sur les conteneurs, y compris celles pour Kubernetes et l’interaction avec un registre Docker, ne sont pas spécifiques d’Azure et peuvent être utilisées avec tout cluster Kubernetes, y compris un cluster auto-hébergé, s’exécutant localement ou sur d’autres clouds, comme tout registre Docker.

Azure Actions pour GitHub

Exemple complet

Voici un exemple de flux de travail de bout en bout qui génère une image de conteneur, l’envoie à Container Registry, puis la déploie sur un cluster AKS à l’aide de fichiers manifeste.

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
   
    - uses: azure/container-actions/docker-login@master
      with:
        login-server: contoso.azurecr.io
        username: ${{ secrets.REGISTRY_USERNAME }}
        password: ${{ secrets.REGISTRY_PASSWORD }}
   
    - run: |
        docker build . -t contoso.azurecr.io/k8sdemo:${{ github.sha }}
        docker push contoso.azurecr.io/k8sdemo:${{ github.sha }}
     
    # Set the target AKS cluster.
    - uses: azure/k8s-actions/aks-set-context@master
      with:
        creds: '${{ secrets.AZURE_CREDENTIALS }}'
        cluster-name: contoso
        resource-group: contoso-rg
       
    - uses: azure/k8s-actions/k8s-create-secret@master
      with:
        container-registry-url: contoso.azurecr.io
        container-registry-username: ${{ secrets.REGISTRY_USERNAME }}
        container-registry-password: ${{ secrets.REGISTRY_PASSWORD }}
        secret-name: demo-k8s-secret

    - uses: azure/k8s-actions/k8s-deploy@master
      with:
        manifests: |
          manifests/deployment.yml
          manifests/service.yml
        images: |
          demo.azurecr.io/k8sdemo:${{ github.sha }}
        imagepullsecrets: |
          demo-k8s-secret

Autres actions GitHub Actions pour Azure

Profitant de la dynamique du lancement de GitHub Actions, nous publions aujourd’hui en préversion cette première mouture de GitHub Actions pour Azure. Au cours des prochains mois, nous continuerons d’améliorer nos Actions disponibles et en publierons de nouvelles pour couvrir d’autres services Azure.

Nous vous invitons à essayer le GitHub Actions pour Azure et à partager vos commentaires via Twitter sur @AzureDevOps ou le site Developer Community. Si vous rencontrez un problème pendant la période de préversion, veuillez ouvrir un problème sur le dépôt GitHub relatif à l’action spécifique.