JavaRush /Blog Java /Random-ES /Integración continua
Nikita Koliadin
Nivel 40
Днепр

Integración continua

Publicado en el grupo Random-ES
¡Saludos compañeros! ¿Estás cansado de obligar a tu computadora a crear un proyecto constantemente? ¡Entonces este articulo es para usted! Integración Continua - 1En este artículo intentaré presentar de forma breve y clara el material sobre Integración Continua (en adelante simplemente CI), responderé preguntas tan sencillas como: “¿Qué es?”, “¿Por qué?” ¿y por qué?" y daré un ejemplo de un proyecto de prueba. Este artículo está destinado a un usuario experimentado que al menos esté familiarizado con Build System: Maven , sepa cómo usar Git y sepa cómo enviar proyectos a GitHub ;

"¿Qué es la integración continua?"

Veamos qué nos dice Wiki sobre esta pregunta : La integración continua (CI, en inglés Continuous Integration) es una práctica de desarrollo de software que consiste en fusionar copias de trabajo en una rama de desarrollo principal común varias veces al día y realizar compilaciones automatizadas frecuentes del proyecto para las primeras etapas. detección de posibles defectos y solución de problemas de integración. Da miedo, ¿no? Intentemos explicar este término en palabras simples: la integración continua es un sistema para crear y probar software de forma automatizada con ciertas configuraciones en ciertas máquinas para detectar errores e incompatibilidades. Bueno, no hay problema, lo resolvimos, pero surge la siguiente pregunta lógica:

¿Por qué necesitamos CI?

Imaginemos que está escribiendo un proyecto grande y es necesario agregar/cambiar funcionalidad. Lo escribes con éxito, escribes pruebas, lo inicias y todo parece estar bien, pero no. Hay situaciones en las que un cambio en una funcionalidad afecta a otra, a otra en una tercera, y así sucesivamente, hasta que surge un error en alguna parte y se produce un error. Sí, puedes decir que lo más probable es que sea un proyecto mal diseñado y puede que tengas razón, pero ¿qué pasa si no lo es y estas conexiones realmente deberían estar ahí? ¿Y si escribes y creas un proyecto más de una vez, como suele ser el caso? Ejecutó pruebas en su funcionalidad recién escrita y dieron un resultado positivo. Hiciste un compromiso rápido, luego empujaste hacia algún lado y ya estás pensando en cómo fumarás un cigarro en casa mientras bebes whisky caro, pero no. Por desgracia, su colega o jefe, sin importar quién, dice que debido a su compromiso, toda la compilación falló. Dices con desconcierto que eres programador, lo has probado todo. Pero a menudo simplemente no hay tiempo para probar constantemente todo el proyecto, y usted solo probó el fragmento de código al que realizó cambios, y no todo el ensamblaje en su conjunto. Aquí es donde CI viene en nuestra ayuda. Con cada envío a cualquier recurso, CI construirá su proyecto desde cero, ejecutará TODAS las pruebas y, solo si todas las pruebas pasan y el proyecto se construye, la compilación recibirá el estado de aprobado . De lo contrario, tendrás la oportunidad de regresar y ver qué salió mal. Entonces, es hora de preguntarse : "¿Por qué esto y no de otra manera?" y eche un vistazo a la implementación del software. Ejemplo Como ya dije, el artículo está destinado a quienes están familiarizados con Maven y Git. Por lo tanto, espero que sepas cómo y qué hago además de configurar CI, etc.
  1. Primero, creemos un proyecto de prueba de Maven simple y creemos una clase que imprima "¡Hola mundo!" y realiza alguna operación simple, y escribamos la prueba más simple para esta clase.

    Como resultado, deberíamos tener una estructura de proyecto primitiva:

    Integración Continua - 2

    Todas las fuentes estarán en mi GitHub. No importa lo que escribas en tu Main y qué pruebas habrá.

  2. Enviamos nuestro proyecto a GitHub.

  3. Ahora viene la parte divertida. De CI, elegí Travis CI por su disponibilidad y confiabilidad. Travis usa GitHub para alojar su código fuente.

    Entonces, vaya al sitio web de Travis CI e inicie sesión a través de GitHub. En el perfil conectamos nuestro proyecto:

    Integración Continua - 3

    Todo está listo para ensamblar con cada empujón, pero la pregunta es ¿CÓMO ensamblar?

  4. Volvemos a nuestra querida IDEA y creamos un archivo .travis.yml

    Este archivo es responsable de la configuración de compilación de Travis. Veamos la configuración más popular:

    • Debe especificar el idioma en el que se implementa el proyecto;
    • Especifique la ruta a los directorios para acelerar la compilación;
    • Especifique el método de notificación sobre un montaje exitoso o fallido.

    Así es como debería verse una configuración típica de Travis:

    # https://docs.travis-ci.com/user/languages/java/
    language: java
    jdk: oraclejdk9
    
    # Improve Build Speed https://dzone.com/articles/travis-ci-tutorial-java-projects
    cache:
      directories:
      - $HOME/.m2
    
    # Notifications https://docs.travis-ci.com/user/notifications/
    notifications:
      email:
        recipients:
          - qThegamEp@gmail.com
        on_success: always # default: change
        on_failure: always # default: always

    Agregué comentarios, con enlaces, para mayor claridad.

  5. Volvemos a GitHub y abrimos el sitio web de Travis , seleccionamos el proyecto y monitoreamos la compilación. Como resultado, recibimos una notificación sobre una compilación exitosa:

    Integración Continua - 4 Integración Continua - 5

    También en el sitio podemos ver una insignia con el montaje exitoso de nuestro proyecto, que podemos insertar en nuestro README.md:

    Integración Continua - 6
Enlaces útiles: Puede haber errores y omisiones en el texto. ¡Gracias por su atención!
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION