7. Qué es la integración continua
▸ La integración continua permite que su equipo
entregue más software, con mayor calidad,
durante un período de tiempo más largo.
▸ Una implementación exitosa de CI requiere una
gestión adecuada del sprint, el producto y el
riesgo financiero.
8. Que es la integración continua
Otras herramientas más conocidas:
▸ Jenkins
▸ Travis
▸ CircleCI
▸ Hay muchos otros (GitLab, Pipelines Bitbucket ...)
10. Docker
▸ Usar imagenes Docker.
▸ Permite usar un Dockerfile.
▸ Se recomienda usar una imagen existente.
▸ Apache + PHP:
▹ https://hub.docker.com/r/keopx/drupal8ci/
▹ Dispone de diferentes versiones de PHP
▸ MySQL
▹ https://hub.docker.com/r/keopx/mysql/
▹ Dispone de diferentes versiones de MySQL
▸ Selenium para Behat
▹ https://hub.docker.com/r/selenium/standal
one-chrome-debug/
12. Drush
▸ Drush permite ejecutar tareas varias:
▹ Instalación del sitio (limpio).
▹ Update de la base de datos
▹ Importar el CMI
▹ Limpiar cache
▹ ...
14. Robo
▸ Robo es un lanzador de tareas tareas totalmente
personalizables al estilo PHP (OOP).
▸ Robo tiene una lista completa de tareas
comunes integradas para desarrollo, prueba e
implementación.
▸ Usar Robo para:
▹ Automatizar tareas comunes.
▹ Inicializar workers.
▹ Ejecutar tareas en paralelo
▹ Ejecutar comandos
▹ Ejecutar tests
▹ Ver cambios en el sistema de ficheros.
▹ ...
16. Behat
▸ Behat es un framework open source
Behavior-Driven Development para PHP.
▸ Es una herramienta para mantener la entrega de
software importante a través de la
comunicación continua, el descubrimiento
deliberado y la automatización de pruebas.
▸ Escribes historias en lenguaje (casi) natural que
describen el comportamiento de tu aplicación.
18. CircleCI
▸ Con CircleCI crea entornos personalizados.
▸ Aplica flujos de trabajo para controlar su
pipeline de compilación.
▸ Flexibilidad en la asignación de recursos
flexible.
▸ Notificaciones.
▸ Recompilar y acceso por ssh para realizar pasos
manuales.
▸ ...
19. ▸ El documento de circleci se configura en una
carpeta oculta y el formato yaml.
▹ .circleci/config.yml
▸ Autenticate con tu cuenta de GitHub/Bitbucket
en https://circleci.com
▸ Permite a CircleCI ver los cambios de tu
repositorio
▸ Este documento contiene la información de la
configuración, tareas y demás.
▹ https://circleci.com/docs/2.0/examples/
Configuración
20. ▸ Vía workflows:
▹ Separa las tareas en sub-tareas
▹ Las subtareas se ejecutan en paralelo.
Pros - Procesamiento paralelo
24. ▸ El servicio gratuito únicamente permite una
concurrentia.
▹ Esto es, dos tareas simultáneamente.
▸ No es tan personalizable como Jenkins.
CONTRAS
25. ▸ Conocimiento:
▹ ~50 horas desde "nunca lo hemos usado
Circle" hasta hecho.
▸ Mantenimiento muy mínimo:
▹ unas pocas horas dos veces al año para las
actualizaciones básicas de Drupal.
▸ Gratis a xxx€/mes:
▹ Escalable según las necesidades de su
organización.
PROS - Costes
26. ▸ El documento de circleci se configura en una
carpeta oculta y el formato yaml.
▹ .circleci/config.yml
▸ Este documento contiene la información de la
configuración, tareas y demás.
CircleCI - Configuración
28. ## Defines images and working directory.
defaults: &defaults
docker:
- image: keopx/drupal8ci:7.1
- image: selenium/standalone-chrome-debug:3.7.1-beryllium
- image: keopx/mysql:5.7
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: 1
working_directory: /var/www/html
Circle CI - Configuración
29. #Jobs
## Job to run Unit and Kernel tests.
unit_kernel_tests: &unit_kernel_tests
<<: *defaults
steps:
- checkout
- *copy_robo
- restore_cache: *restore_cache
- run:
name: Run PHPUnit tests
command: robo job:run-unit-tests
- store_test_results:
path: /var/www/html/artifacts/phpunit
- store_artifacts:
path: /var/www/html/artifacts
- save_cache: *save_cache
Circle CI - Configuración
30. # Declare a workflow that runs all of our jobs in parallel.
workflows:
version: 2
test_and_lint:
jobs:
- run-unit-kernel-tests
- run-behat-tests
- run-code-sniffer
- run-code-coverage
Circle CI - Configuración
34. ▸ Basada en la presentación de @juampynr y
@deviantintegral en la DrupalCon 2018 de
Nashville.
▹ Continuous Integration has never been so
easy
▹ Video
▸ Artículos
▹ https://www.lullabot.com/articles/continuo
us-integration-drupal-8-circleci
▹ Repositorio
▹ Video
Recursos