El primer paso es crear la conexión a LCS con la aplicación de AAD que hemos creado antes. Pulsamos New y se abrirá la siguiente ventana:
Sólo es necesario rellenar el nombre, usuario, contraseña y el Application (Client) ID con el App ID que tenemos del paso inicial en Azure, los campos de «Endpoint» deberían completarse solos. Pulsamos OK y ya tenemos la conexión lista.
¡Gracias a Søren Printz Christensen por este dato!
En el campo LCS Project Id ponemos el ID que aparece en la URL del proyecto de LCS, por ej. en https://lcs.dynamics.com/V2/ProjectOverview/1234567 el Id es 1234567.
Pulsamos el botón al lado del campo de «File to upload» y seleccionaremos el archivo del deployable package que genera la build:
Dependiendo de si habéis modificado la definición de build o no, el archivo tendrá un nombre u otro, pero normalmente es del tipo AXDeployableRuntime_VERSION_NUMEROBUILD.zip. Cambiad el número fijo de build por la variable de la siguiente manera:
En «LCS Asset Name» y «LCS Asset Description» se define el nombre y descripción que tendrá el paquete en LCS. Para estos campos podéis usar todas las variables predefinidas de build y de release que ofrece Azure DevOps. Siguiendo con el caso anterior del nombre del archivo, usaremos un prefijo que describa qué tipo de paquete es (para producción o pre-producción) seguido de $(Build.BuildNumber), generando por ejemplo un DP llamado Prod 2019.1.29.1 con la fecha de build.
Ahora ya sólo nos queda guardar y probar. En la pantalla de Releases seleccionamos la que acabamos de crear, le damos al botón «Create a release» y sin cambiar ninguna opción seleccionamos OK en la pantalla que se ha abierto. Se lanzará la release y si todo va bien podremos ver el paquete en LCS:
Si queremos automatizar la parte de release y que se ejecute cada vez que termine una build sólo tenemos que activar el trigger en el artefacto:
Desde el botón del rayo se nos abre un diálogo y simplemente hay que marcar la opción que aparece.
Nada más, con estos pasos ya tendremos configuradas las builds (que pueden estar automatizadas también) y los releases. Sólo falta que los despliegues también se puedan automatizar y ya estaremos en la integración continua que comentaba al principio.
¡Y ya esta todo listo! Un pasito más cerca de deshacernos de las VM de build.
Esta nueva tarea no tiene parámetros u opciones que tengan que completarse, solo tenemos que añadirla a nuestro pipeline y ya está.
Si tenéis un pipeline de release con varios stages, habrá que añadir esta nueva tarea en cada stage en los que vaya a haber autenticación. Si por ejemplo lo ponéis en el primero, donde se hace la subida a LCS, y en otro se hace el despliegue y no tiene esta task, va a fallar. Esto por lo menos es cierto si el proyecto tiene agentes adicionales, tengo que probarlo con un proyecto con un único agente.
Y la nueva:
LCS regionales #
Si usas una instancia regional de LCS para tu proyecto, necesitas tener en cuenta que el endpoint del campo «Lifecycle Service API Endpoint» tiene que actualizarse con el valor correspondiente:LCS endpoint | LCS API endpoint | |
---|---|---|
France | https://fr.lcs.dynamics.com/ | https://lcsapi.fr.lcs.dynamics.com |
United Arab Emirates | https://uae.lcs.dynamics.com/ | https://lcsapi.uae.lcs.dynamics.com |
South Africa | https://sa.lcs.dynamics.com/ | https://lcsapi.sa.lcs.dynamics.com |
Switzerland | https://ch.lcs.dynamics.com/ | https://lcsapi.ch.lcs.dynamics.com |
Europe | https://eu.lcs.dynamics.com/ | https://lcsapi.eu.lcs.dynamics.com |
Norway | https://no.lcs.dynamics.com/ | https://lcsapi.no.lcs.dynamics.com |