visual - ¿Azure DevOps, YAML lanzan tuberías?
vsts release (5)
Al momento de escribir esta respuesta, la línea de tiempo de las características refleja los lanzamientos de yaml que están llegando en 2018 Q3.
https://docs.microsoft.com/en-us/azure/devops/release-notes/
Actualización: Esto ha sido golpeado un par de veces. Se recomienda verificar los comentarios a continuación, ya que la gente ha estado proporcionando actualizaciones a medida que los encuentran.
Actualizar
Según los comentarios, esto ahora es posible: https://devblogs.microsoft.com/devops/whats-new-with-azure-pipelines/ . Lo siguiente se copia y pega del artículo y se demuestra utilizando varias etapas:
stages:
- stage: Build
jobs:
- job: Build
pool:
vmImage: ''Ubuntu-16.04''
continueOnError: true
steps:
- script: echo my first build job
- stage: Deploy
jobs:
# track deployments on the environment
- deployment: DeployWeb
pool:
vmImage: ''Ubuntu-16.04''
# creates an environment if it doesn’t exist
environment: ''smarthotel-dev''
strategy:
# default deployment strategy
runOnce:
deploy:
steps:
- script: echo my first deployment
Estoy siguiendo este proceso para crear una canalización de compilación YAML para un proyecto de API Web Core de .NET:
https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started-yaml?view=vsts
Cuando se trata de lanzarlo, observo que el (recientemente renombrado) DevOps de Azure no parece ser compatible con YAML para definir las líneas de distribución. Sin embargo, puedo ver que las tareas de implementación se han definido, por ejemplo:
¿Estamos esperando una actualización a la funcionalidad de las tuberías de lanzamiento para soportar YAML y, en caso afirmativo, cuándo?
El Equipo de Producto está trabajando en ello. Puede seguir la actualización a través de https://docs.microsoft.com/en-us/azure/devops/release-notes/ .
Estoy en medio de hacer algo como esto en este mismo momento, pero estoy usando las API REST actuales. Lo que estoy haciendo es similar a lo que documenté aquí ( ¿Cómo se importa una definición de lanzamiento en VSTS? ). Básicamente, estoy guardando un archivo JSON Release Pipeline en el repositorio de código fuente con marcadores de posición variables y un número de versión incorporado. Luego tengo una secuencia de comandos de PowerShell que llama a los DevOps de Azure (es una palabra larga, preferí escribir VSTS, tal vez comenzaré a escribir AD)
- API de REST para verificar la existencia de Pipeline de publicación - funciona
- Crea si no existe - funciona
- Compare versiones incrustadas y actualice, y si es necesario (estoy atascado aquí, pero lo resolveré, devolver el error de que la actualización de la tubería no ha cambiado a pesar de que la he cambiado).
Quiero que esto se ejecute durante la canalización de compilación para que ya no tenga que modificar manualmente muchos canales de versión similares. Preferiría que este también fuera un archivo YAML, pero esto es lo que tengo hoy. Espero que esto ayude.
La experiencia de creación de tuberías de compilación YAML está en vista previa. (hoy es 2018-12-04)
YAML para las tuberías de lanzamiento parece ser un camino aún: dev.azure.com/mseng/Azure%20DevOps%20Roadmap/_workitems/edit/…
Las funciones de vista previa se pueden habilitar desde tu perfil de esta manera:
EDITAR: Como nullforce señala en los comentarios, esto solo habilita una experiencia YAML para construir tuberías y no para liberar tuberías.
ACTUALIZACIÓN (2019-05-16): Siguiendo la " Compilación 2019" de Microsoft, la experiencia YAML completa tanto para la compilación como para la implementación ahora debería ser posible en el mismo archivo de tuberías de YAML.
Las tuberías están hechas de uno o más trabajos y pueden incluir recursos y variables. Los trabajos se componen de uno o más pasos más algunos datos específicos del trabajo. Los pasos pueden ser tareas, scripts o referencias a plantillas externas. Esto se refleja en la estructura del archivo YAML. Por favor visite here para más detalles.