Anuncio de la versión preliminar de las Acciones de GitHub para Azure

Publicado el 13 agosto, 2019

Principal Program Manager, Azure DevOps

Actualización del 15 de octubre de 2019: Tenga en cuenta que algunas de las acciones que se mencionan a continuación se han trasladado a nuevos repositorios de GitHub durante la versión preliminar. Consulte el repositorio de GitHub Azure/actions para ver las instrucciones actualizadas.

El jueves 8 de agosto de 2019, GitHub anunció la versión preliminar de Acciones de GitHub con soporte para la integración continua y entrega continua (CI/CD). Acciones permite crear canalizaciones simples, pero eficaces, y automatizar la compilación y entrega de software. Hoy anunciamos la versión preliminar de las Acciones de GitHub para Azure.

Con estas nuevas Acciones, los desarrolladores pueden compilar, probar e implementar rápidamente código de repositorios de GitHub en la nube con Azure.

Puede encontrar el primer grupo de acciones en cuatro repositorios de GitHub, cada uno con documentación y ejemplos para ayudarlo a usar GitHub para CI/CD e implementar sus aplicaciones en Azure.

  • azure/actions (login): Autentíquese con una suscripción de Azure.
  • azure/appservice-actions: Implemente aplicaciones en Azure App Services mediante las características Web Apps y Web App for Containers.
  • azure/container-actions: Conéctese con registros de contenedor, como Docker Hub y Azure Container Registry, además de compilar y enviar cambios imágenes de contenedores.
  • azure/k8s-actions: Conéctese e implemente en un clúster de Kubernetes, incluido Azure Kubernetes Service (AKS).

Conéctese a Azure

La acción inicio de sesión (azure/actions) le permite conectarse de forma segura a una suscripción de Azure.

El proceso requiere el uso de una entidad de servicio, que se puede generar con la CLI de Azure, según las instrucciones. Use la tienda secreta integrada de Acciones de GitHub para almacenar de manera segura el resultado de este comando.

Si el flujo de trabajo involucra contenedores, también puede usar las Acciones azure/k8s-actions/docker-login y azure/container-actions/aks-set-context para conectarse con los servicios de Azure, como Container Registry y AKS respectivamente.

Estas Acciones ayudan a establecer el contexto para el resto del flujo de trabajo. Por ejemplo, una vez que use azure/container-actions/docker-login, el próximo grupo de Acciones del flujo de trabajo puede realizar tareas como compilar, etiquetar y enviar cambios de imágenes de contenedores a Container Registry.

Implementación de una aplicación web

Azure App Service es una plataforma administrada para implementar y escalar aplicaciones web. Puede implementar su aplicación web fácilmente en Azure App Service con las Acciones azure/appservice-actions/webapp y azure/appservice-actions/webapp-container.

La acción azure/appservice-actions/webapp toma el nombre de la aplicación y la ruta a un archivo (*.zip, *.war, *.jar) o carpeta para realizar la implementación.

La acción azure/appservice-actions/webapp-container permite la implementación de aplicaciones en contenedores, incluidos contenedores múltiples. Cuando se combina con la acción azure/container-actions/docker-login, puede crear un flujo de trabajo completo que compila una imagen de contenedor, la envía al Container Registry y, luego, la implementa en Web App for Containers.

Implemente la solución en Kubernetes

azure/k8s-actions/k8s-deploy lo ayuda a conectarse a un clúster de Kubernetes, simular mediante "bake" e implementar manifiestos, sustituir artefactos, comprobar el estado de lanzamientos y manipular secretos en AKS.

La acción azure/k8s-actions/k8s-create-secret se encarga de crear objetos secretos de Kubernetes que lo ayudan a administrar información confidencial, como contraseñas y tokens de API. En particular, estas incluyen el secreto del registro de Docker, que lo usa AKS para extraer imágenes privadas de un registro. Esta acción permite completar el clúster de Kubernetes con valores de la tienda secreta integrada en las Acciones de GitHub.

Nuestras Acciones centradas en contenedores, incluidas aquellas para Kubernetes y para interactuar con un registro de Docker, no son exclusivas para Azure. Se pueden usar con cualquier clúster de Kubernetes, incluso los que están autohospedados, los que se ejecutan en el entorno local u otras nubes, y cualquier registro de Docker.

Acciones de Azure para GitHub

Ejemplo completo

Aquí le presentamos un ejemplo de un flujo de trabajo de extremo a extremo que compila una imagen de contenedor, la envía a Container Registry y, luego, la implementa en un clúster de AKS mediante archivos de manifiesto.

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

Más Acciones de GitHub para Azure

Aprovechando el impulso de las Acciones de GitHub, hoy lanzamos estas primeras Acciones de GitHub para Azure en versión preliminar. En los próximos meses, seguiremos mejorando las Acciones disponibles y lanzaremos otras nuevas para abarcar más servicios de Azure.

Pruebe las Acciones de GitHub para Azure y comparta sus comentarios por Twitter en @AzureDevOps o a través de Developer Community. Si detecta algún problema durante la versión preliminar, abra una incidencia en el repositorio de GitHub para la acción específica.