Jenkins

Se encarga de ejecutar tareas.

Tareas:

  • Comprobar si existe un cambio en el repositorio rama dev.
  • Ejecuta los test Unitarios de dev.
  • Crea una rama con el merge de master + dev = master_dev .
  • Ejecuta los test en master_dev .
  • Merge de master con master_dev .

Escenario Proceso básico: ejecución periódica.

Configuración de Jenkins

Esta seria una ejecución sencilla muy básica en la que Jenkins cada x tiempo realiza una tarea.

Creamos una nueva tarea, la nombramos y ponemos una descripción.

En el apartado de Configurar el origen del código fuente ponemos ...

Opción :Git

Dentro de repositorio el repositorio original: https://github.com/Didweb/NeuSystem.git

_Credenciales: A_signar nuestras credenciales de acceso a github.com

Branches to build:*/dev

En Disparadores de ejecuciones ponemos ...

 */1 * * * *

esto ara que se dispare cada minuto la consulta.

En la sección Ejecutar seleccionamos Ejecutar linea de comándos ...

git checkout master
git pull

git checkout dev
git pull

phpunit tests

git branch -v

git checkout master
git pull

git branch -D master_dev
git checkout -b master_dev

git merge master
git merge dev

phpunit tests

git branch -v

git checkout master
git merge dev 

git branch -v

phpunit tests

git push origin master_dev
git push origin master

... guardamos.
Esta configuración básica:

  • Realiza test de la nueva rama.
  • Crea una nueva rama y fusiona con la rama master.
  • Realiza unos test de nuevo.
  • Actualiza la rama master del repositorio.

Escenario al obtener cambios en el SCM

En este escenario Jenkins comprueba si ha habido un cambio en el repositorio, en tal caso este ejecuta el siguiente proceso. Esto pude configurarse para que desencadene una serie de tareas asignados directamente al proceso de checking o bien encadenados.

Tareas...

  1. NS_check_SCM: Comprueba si ha sucedido un cambio. En caso de ser afirmativo, ejecuta el siguiente paso...
  2. NS_Test_dev: Hace un test de la rama dev. En caso de pasar de forma correcta ejecuta el siguiente paso...
  3. NS_Merge: hace un merge de dev + master en una rama intermedia. Ejecuta un test y luego hace un merge a la rama master.

NS_check_SCM

Configuración de Jenkins:

Dentro de Configurar el origen del código fuente habilitar Git. Barnches to build he puesto */dev.

Disparadores de ejecuciones: La opción Consultar repositorio (SCM) : */1 * * * * (En este caso para que se ejecute cada minuto, es para hacer las pruebas lo lógico seria un tiempo más amplio. )

Acciones para ejecutar después, seleccionar la opción Ejecutar otros proyectos en este caso NS_Test_dev

NS_Test_dev

Configuración de Jenkins:

Configurar el origen del código igual que el paso anterior.

Ejecutar seleccionamos Ejecutar un comando Windows y escribimos el siguiente código ...

git branch -v

git checkout dev
git pull

phpunit tests

Donde nos situamos en dev hacemos un pull y pasamos un phpunit test.

Acciones para ejecutar después, seleccionar la opción Ejecutar otros proyectos en este caso NS_Merge

NS_Merge

Configuracion de Jenkins:

Configurar el origen del código igual que el paso anterior.

Ejecutar seleccionamos Ejecutar un comando Windows y escribimos el siguiente código ...

git checkout  master_dev
git pull origin master_dev

git merge origin/master
git merge origin/dev

phpunit tests


git checkout master
git pull origin master 
git merge master_dev 

phpunit tests

Plugins para PHP

Existe una web con los diferentes plugins para php ... http://jenkins-php.org/.

Otros plugins interesantes para implementar en Jenkins, han sido extraidos de otro gitbook [ https://jose.gitbooks.io/testing-book/content/IntegracionContinua.html ] : Los recomendados por ese git book son...

  • [Sin probra] PHP_CodeSniffer: Herramienta para detectar violaciones en la estandarización del código elegida por el proyecto bajo la integración continua.

  • [Sin probra] PHP_Depend: Analizador de código que genera determinadas métricas para asegurar la calidad de código, he indicar posibles refactorizaciones según dichas métricas.+

  • [Sin probra] PHP Mess Detector: Analizador de código que determina secciones de código muerto, posibles bugs o expresiones complejas.

  • [Sin probra] PHP Copy/Paste Detector: Herramienta que encuentra fragmentos de código duplicado en una base de código.

Para ilustrar una integración, configuraremos el proyecto de Strings, mencionado en el capítulo 3.

results matching ""

    No results matching ""