Plantilla Local

Esta plantilla nos permitirá configurar los proyectos que tenemos en nuestro local. Es interesante dar de alta en Jenkins nuestro proyecto local para asegurarnos, cada vez que nos actualicemos, que el código subido al SVN es estable, ya que en escenarios con muchos desarrolladores se puede dar el caso de que haya problemas que impidan que el proyecto despliegue.

Comprobando el proyecto en Jenkins, antes de actualizar nuestro local, nos permitirá siempre hacer actualizaciones seguras que no nos impidan continuar nuestro desarrollo.

Para dar de alta en Jenkins nuestro proyecto en local deberemos crear una nueva tarea e indicarle que debe usar la plantilla de local, marcando la opción Copiar una Tarea existente e indicando que use la plantilla (Plantilla) -FW- Plantilla Local.

También debemos asegurarnos que nuestro proyecto tiene los “build files” acordes, para obtenerlos podemos descargarlos en este enlace (Importante: Cambiar [MIPROYECTO], por el nombre del proyecto) y la configuración maven necesaria, para ello:

  • Debemos modificar el pom.xml del proyecto principal y actualizar la versión del <parent> a 2.0.19 ( para FundeWeb 1.5 es la versión 1.5.19).
  • Si tenemos test deberemos añadir la suite de test al plugin de informes quedando así:
    <plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<configuration>
		<skip>false</skip>
		<argLine>${argLine}</argLine>
		<testFailureIgnore>true</testFailureIgnore>
		<parallel>true</parallel>
		<threadCount>2</threadCount>
		<!-- "child first" classloading, like a web application-->
		<childDelegation>true</childDelegation>
		<suiteXmlFiles>
			<suiteXmlFile>src/test/testng/testng.xml</suiteXmlFile>
		</suiteXmlFiles>
	</configuration>
    </plugin>
  • Añadir el plugin para el análisis de la cobertura de código:
   <plugin>
	<groupId>org.jacoco</groupId>
	<artifactId>jacoco-maven-plugin</artifactId>
	<executions>
		<execution>
			<goals>
				<goal>prepare-agent</goal>
			</goals>
		</execution>
		<execution>
			<id>report</id>
			<phase>prepare-package</phase>
			<goals>
				<goal>report</goal>
			</goals>
		</execution>
	</executions>
   </plugin>

El nombre de la tarea seguirá el formato (GrupoDeTrabajo)_MiProyecto-Local. Por ejemplo (MNCS)_Apium-Local

Una vez creada la plantilla deberemos editarla para que contenga los valores de nuestro proyecto. Los campos a modificar los comentamos a continuación:

Los primeros campos para ser editados son el nombre de la tarea llamado Proyecto Nombre y la descripción. El campo Proyecto Nombre admite sólo texto plano. El nombre de la tarea seguirá el formato (GrupoDeTrabajo)_MiProyecto-Local. Por ejemplo (MNCS)_Apium-Local

El campo descripción permite introducir código HTML “seguro”, lo cual es válido para una correcta descripción, pero no para utilizar toda la funcionalidad de HTML al completo.

Una vez rellenados estos valores básicos debemos prestar atención al log de ejecuciones realizadas. Marcando el checkbox Desechar ejecuciones antiguas podremos definir cuantas ejecuciones queremos que conserve. Para definir este valor, entre otros parámetros, podemos indicar el número de días que se debe conservar una ejecución o el número máximo de ejecuciones a conservar.

Por defecto, la plantilla tiene establecido que se mantengan las cinco últimas ejecuciones.

Si en nuestro grupo de trabajo utilizamos el cliente de mensajería Slack para comunicarnos. Podemos hacer que las compilaciones de nuestro proyecto se publiquen en el canal que deseemos de manera que cualquiera subscrito a ese canal pueda estar al tanto de cualquier cambio.

Podremos indicar qué notificaciones debe mostrar en nuestro canal, así como el canal en el que queremos que se publique. Es de especial importancia el parámetro Integration Toket que habrá que generar desde Slack para poder comunicar Jenkins con nuestro chat.

En este punto la plantilla por defecto no incluye ningún valor, pero un ejemplo con valores adecuados para una tarea en Local puede ser:

  • Notify Aborted (x)
  • Notify Failure (x)
  • Notify Not Build (x)
  • Notify Repeated Failure (x)
  • Team Domain: mncs (El nombre de tu sitio en slack)
  • Integration Token: 7lTrzkcHxxYY762xa2UpTPmc9u (Te lo proporcionará el propio Slack)
  • Project Channel: NombreGrupo-jenkins (El nombre que le hayas dado al canal para jenkins en slack)

En este apartado deberemos configurar el acceso desde Jenkins hacia nuestro repositorio SVN. Para este acceso haremos uso del usuario hudson por lo que es imprescindible que dicho usuario tenga permiso de lectura en nuestro repositorio. Por defecto sistemas habilita este acceso en cada repositorio nuevo, pero en caso de tener problemas de permisos debemos asegurarnos que el usuario hudson sí tiene acceso de lectura.

Para que Jenkins pueda acceder a nuestro proyecto deberemos aportar la siguiente información:

  • Indicar que el código fuente está en subversion.
  • Repository URL: Url donde se encuentra nuestro código fuente. https://svn.um.es/svn/APIUM/proyecto/fuentes/apium
  • Credentials: Las credenciales del usuario hudson.
  • Local module directory: Donde se guardará nuestro proyecto en Jenkins, como norma “./nombreProyecto”. ./apium
  • Repository depth: Infinity
  • Check-out Strategy: Use 'svn update' as much as possible.

Si hemos introducido los datos de manera correcta, no aparecerán mensajes de aviso de error.

En este punto indicaremos qué tareas Ant serán las que ejecute nuestra aplicación. Para el caso de un despliegue en local es suficiente ejecutar la tarea que genera analiza el código y recoge los informes.

Esta tarea además lanzará los test que hayamos definido en nuestra aplicación, comprobará que despliega correctamente.

La tarea Ant tiene una serie de propiedades para que tanto las aplicaciones Fundeweb 1 como las Fundeweb 2 puedan ejecutarse correctamente. Estos valores no deben modificarse, deben mantenerse tal y como están definidos en la plantilla

Una vez que nuestro tarea ha acabado satisfactoriamente se realizarán todas las acciones que se encuentren en este apartado.

Por defecto la plantilla incluye la publicación de los informes de los plugins generados y la notificación por correo al responsable o responsables (según indiquemos). Se recomienda utilizar Slack para las comunicaciones en lugar del correo electrónico.

Añade adicionalmente un plugin visual para ver el estado de la aplicación.

Es importante destacar que la ruta para recoger el análisis de nuestros ficheros, podemos encontrarla dentro de Zona de trabajo en el menú lateral izquierdo, en esa zona estarán todos los ficheros necesarios para el funcionamiento de Jenkins y deberemos encontrar la ruta hasta los ficheros de los informes.

Por defecto la ruta establecida en la plantilla es la normal para la generación de los informes. No obstante en algunos proyectos se generan en otra estructura de directorios por lo que tendremos que buscar dónde se encuentran y modificar dicha ruta.

  • fdw2.0/fundeweb2.0/gt/plantilla_local.txt
  • Última modificación: 07/11/2017 10:46
  • (editor externo)