TeamCity incluye un gran número de funciones que potenciarán sus compilaciones. En este tutorial, exploraremos cómo utilizar ejecutores específicos y por qué querrá utilizarlos.
El ejecutor de compilación es una parte de TeamCity que permite la integración con una herramienta de compilación específica (Ant, MSBuild, línea de comandos, etc.). Un ejecutor de compilación proporciona configuraciones que permiten especificar qué tareas de compilación ejecutar, qué versión de la herramienta de compilación utilizar, qué imagen de Docker/Linux utilizar como contenedor, etc. En una configuración de compilación, se define cómo un ejecutor de compilación debe ejecutar una compilación e informar de sus resultados. TeamCity ofrece muchos ejecutores de compilación listos para usar, incluidos .NET, Maven, Gradle, Docker, Python, Node.js, entre muchos otros.
Abramos y editemos una configuración de compilación. Aquí, tenemos un paso de compilación; un paso de compilación de línea de comandos. El script maneja los siguientes comandos:
cd
en un directorio de servicios de calculadora.mvn clean package
..jar
a un bucket S3 privado. Aquí, vamos a deshacernos del paso mvn clean package
y utilizaremos las funcionalidades específicas de Maven de TeamCity para ello. Podemos simplemente eliminar la línea en el script personalizado y hacer clic en Save:
Después de eso, vamos a añadir un nuevo paso de compilación. TeamCity le sugerirá que elija un ejecutor específico:
Para cada tecnología con la que se integra TeamCity, puede encontrar un ejecutor específico. Por ejemplo, si desea compilar proyectos .NET, elegiría un ejecutor .NET. Si desea ejecutar scripts de línea de comandos, utilizará un ejecutor de línea de comandos. Del mismo modo, utilizaría un ejecutor Docker para los pasos específicos de Docker, un ejecutor Gradle para los proyectos Gradle, etc.
Encontrará la lista completa de los ejecutores de compilación de TeamCity en la documentación.
Puesto que estamos trabajando con un proyecto Maven, elijamos Maven en la lista desplegable. Después, vamos a rellenar algunos campos que TeamCity sugiere en este paso.
Nuestro archivo pom.xml
se encuentra en el directorio de servicio de la calculadora, así que vamos a elegir la carpeta correcta haciendo clic en el icono del árbol. Al obtener una bonita vista en forma de árbol de todos los directorios, ya no tendrá que teclear el nombre del directorio (y potencialmente cometer un error ortográfico). Solo tiene que seleccionar el directorio de la lista.
Puede ejecutar el paso mvn clean package
dentro de un contenedor Docker indicando un nombre de imagen Docker desde Docker hub, por ejemplo maven:latest
. TeamCity obtendrá esta imagen, iniciará de forma transparente un contenedor Docker a partir de ella, ejecutará su objetivo mvn clean package
en su interior y se deshará del contenedor después.
Para continuar con la configuración manual de los pasos de compilación, haga clic en este enlace:
En TeamCity, puede elegir un ejecutor de cobertura específico. Por ejemplo, puede añadir los ejecutores de cobertura de código de IntelliJ IDEA o JaCoCo, en lugar de codificarlo todo en su archivo pom.xml
.
Añadamos com.jetbrains.teamcity.*
como nombre de patrón de paquete. TeamCity analizará entonces los paquetes cuyos nombres coincidan con ese patrón para la cobertura de código.
TeamCity también le permite configurar opciones avanzadas. Por ejemplo, puede elegir diferentes versiones del proyecto Maven o seleccionar una versión específica de Java para ejecutar todo el proyecto.
Con todas estas opciones de interfaz de usuario, no tiene que preocuparse de si su invocación de línea de comandos va a funcionar. TeamCity se encargará de ello por usted.
Ahora, tenemos el script de línea de comandos en ejecución y el paso de Maven que viene después. Queremos reordenar nuestros pasos de compilación para que mvn clean package
se ejecute primero y luego se produzca la carga de la línea de comandos a S3.
Después de eso, simplemente haga clic en Run, y todo debería funcionar correctamente.
Una vez que la compilación termine de ejecutarse, podrá acceder a la página de resumen de la compilación. Aquí, encontrará nuevas pestañas como Maven Build Info y Code Coverage, así como una nueva sección para los resultados de Tests y Code Coverage.
Información de compilación de Maven
En la página Maven build info, obtendrá una visión general de los objetivos que ha ejecutado con cada versión específica de Maven. También verá los artefactos producidos, como el archivo .jar
que produjo Maven.
El informe también le muestra todas las dependencias específicas con sus versiones en las que Maven hizo pull para esta compilación específica. Esto le ofrece una visión general de las bibliotecas que componen su compilación. También es útil a efectos de depuración.
Asímismo verá todos los complementos efectivos de Maven que se activaron durante esa compilación.
Página de resumen de pruebas
La página de resumen de pruebas, que obtendrá gratuitamente al utilizar el ejecutor de Maven, le proporciona mucha información útil. Esto es lo que puede ver en el informe:
Cada prueba cuenta también con un historial de pruebas que le proporciona toda la información esencial sobre la prueba. El historial de pruebas es útil cuando necesita investigar problemas que puedan surgir con las pruebas, como «¿Por qué de repente esta prueba tarda más? ¿Es una prueba defectuosa?» y similares.
Hablamos de los informes de pruebas en detalle en este vídeo.
Informe de cobertura de código
El informe de cobertura de código nos proporciona información sobre las clases y métodos utilizados, así como el porcentaje de código que abarcan las pruebas.
Todo lo que tiene que hacer es seleccionar un par de opciones desplegables en el ejecutor de cobertura de código de IntelliJ IDEA para obtener todos estos informes en la interfaz de usuario de TeamCity.
¡Eso es todo por ahora! Vea otros tutoriales para aprender a hacer uso de funciones específicas de TeamCity, como los informes de pruebas o los informes de cobertura de código.
¡Disfrute compilando!
Este tutorial le muestra cómo utilizar TeamCity para ejecutar los scripts de línea de comandos que conforman la base esencial de sus procesos de compilación.
Este vídeo explica cómo configurar una compilación para producir y cargar artefactos, ejecutar la compilación y, a continuación, descargar los artefactos a través de la interfaz de TeamCity.
En TeamCity, puede obtener fácilmente datos de sus compilaciones con la ayuda de artefactos. En este tutorial, veremos más de cerca cómo trabajar con artefactos en TeamCity.