Solución de integración continua DevOps de SkyEye y Jenkins

Con el rápido desarrollo de la tecnología, con los cambios en los requisitos provocados por el aumento de la complejidad de la lógica del software en diversas industrias, las pruebas tradicionales no han podido cumplir con una serie de tareas de prueba correspondientes. Es necesario introducir una tecnología automatizada y sostenible. Plataforma DevOps de construcción integrada para resolver este tipo de problemas. Este artículo presentará principalmente la solución de integración continua de SkyEye y Jenkins.

¿Qué es DevOps? DevOps es una cultura y metodología de desarrollo, operación y mantenimiento de software, que tiene como objetivo fortalecer la cooperación y coordinación entre los desarrolladores (Desarrollo) y los equipos de operación y mantenimiento (Operaciones) para lograr una entrega de software y un proceso de implementación más eficiente, más rápido y más estable. enfatiza la conexión perfecta entre el desarrollo, las pruebas, la implementación y la operación y mantenimiento de software a través de la automatización y la retroalimentación continua, así como la mejora y optimización continua de todo el proceso de entrega.

La creación de un entorno de integración continua debe cumplir las tres condiciones siguientes:

(1) Un proceso de construcción automático, que incluye compilación, distribución, implementación y prueba automáticas, etc.;

(2) Un repositorio de código, que requiere software de control de versiones para garantizar la mantenibilidad del código, así como una biblioteca de materiales para el proceso de construcción;

(3) Un servidor de integración continua.

La integración continua requiere la combinación de múltiples herramientas para completar todo el flujo de trabajo. Las funciones y tecnologías relacionadas de la cadena de herramientas se muestran en la siguiente tabla:

▲ Correspondencia entre el proceso de negocio y la cadena de herramientas

01. Introducción a SkyEye

SkyEye, el nombre completo chino del software de simulación en tiempo real totalmente digital Tianmu, es una plataforma de simulación de nivel de comportamiento de hardware controlada y controlable a nivel nacional basada en modelado visual. Puede proporcionar un entorno operativo virtualizado para software integrado. Los desarrolladores y evaluadores pueden utilizar este entorno operativo virtual Realizar actividades de desarrollo de software, pruebas de software y verificación de software.

El diagrama de flujo de integración continua basado en SkyEye se muestra en la siguiente figura:

▲ Diagrama de demostración del proceso de integración continua basado en el software de simulación digital completo SkyEye

Las cadenas de herramientas involucradas en el proceso de integración continua basado en SkyEye son:

▲ Tecnología de implementación de cadena de herramientas de prueba de software integradas

02. Introducción a Jenkins

Jenkins es una herramienta de servidor de automatización de código abierto para crear, probar e implementar proyectos de software, así como una herramienta de integración continua (CI) y entrega continua (CD), que puede ayudar a los equipos de desarrollo a automatizar diversas tareas en el proceso de desarrollo de software.

Las principales características y funciones de Jenkins son:

Compilaciones automatizadas: permite a los equipos de desarrollo activar procesos de compilación automatizados cuando el código se envía a un repositorio de control de versiones como Git. Cada vez que se envía un código nuevo, Jenkins extraerá automáticamente el código más reciente y creará el proyecto para garantizar la compilabilidad del proyecto.

Integración continua: admite la integración continua integrando el código de los desarrolladores en una base de código compartida y construyendo y probando cada confirmación de código. Se puede integrar con varios sistemas de control de versiones (como Git, Subversion, etc.) para monitorear los cambios de código y automáticamente. desencadena el proceso de construcción.

Ecosistema de complementos: tiene un enorme ecosistema de complementos que puede ampliar sus funciones e integrar otras herramientas de desarrollo e implementación; los complementos se pueden utilizar para crear herramientas, probar marcos, analizar código estático e implementar en plataformas en la nube.

Extensibilidad: se puede personalizar según las necesidades del proyecto, lo que permite a los usuarios crear procesos de compilación personalizados, agregar scripts y comandos personalizados e integrarlos con otras herramientas y servicios.

Interfaz visual: proporciona una interfaz web fácil de usar, los usuarios pueden administrar y monitorear el proceso de compilación, ver el historial de compilación, configurar activadores de compilación, monitorear el resultado de la compilación, etc.

Compilación distribuida: permite que las tareas de compilación se distribuyan a múltiples nodos de agentes para su ejecución, lo que ayuda a acelerar el proceso de compilación y mejorar el rendimiento general.

Informes y notificaciones: se pueden generar informes de compilación detallados, incluidos resultados de pruebas, cobertura de código y resultados de análisis de código estático, y se pueden enviar notificaciones y estados de compilación a los miembros del equipo por correo electrónico, mensajes instantáneos y otros canales.

La flexibilidad y personalización de Jenkins lo convierten en una herramienta importante en los procesos de integración y entrega continua. Automatiza tareas de construcción complejas, proporciona comentarios e informes oportunos y facilita el trabajo en equipo y el desarrollo colaborativo. Ya sea un proyecto pequeño o una aplicación empresarial grande, Jenkins puede ayudar a los equipos de desarrollo a mejorar la eficiencia, reducir el riesgo y ofrecer software de alta calidad.

03. Integración continua entre SkyEye y Jenkins

La integración de SkyEye y Jenkins tiene muchas ventajas:

Deshágase de las limitaciones específicas del hardware: se pueden realizar múltiples modelos de pruebas de software integrado en una PC; 

Configuración con script: reduzca el complicado proceso de configuración y facilite el proceso de operación;

Pruebas automatizadas: la herramienta de integración continua de Jenkins puede automatizar el proceso de construcción y, al mismo tiempo, detectar defectos lo antes posible para evitar errores direccionales al aumentar la frecuencia de integración;

Reducir el riesgo: se pueden realizar múltiples pruebas de simulación de integración en un día, lo que resulta beneficioso para comprobar defectos y comprender el estado del software;

No limitado por tiempo y lugar: el software implementable se puede generar en cualquier momento y en cualquier lugar. Mediante la integración continua, se pueden realizar pequeños cambios en el código fuente en cualquier momento y estos cambios se pueden integrar con otros códigos para realizar pruebas oportunas.

El proceso de integración continua entre SkyEye y Jenkins es el siguiente:

1. Gestión de código fuente/proyecto SkyEye/gestión de datos de prueba:

Cree el proyecto correspondiente a través de SkyEye, cargue el proyecto construido en la rama de proyectos del almacén de Gitea y cargue el código fuente en la rama de código del almacén de Gitea.

2. Modificación del código:

A través de la operación git add/git commit/git push, el comando git push activa el webhock para notificar a Jenkins que realice una tarea de compilación automática.

3. Jenkins recibe la instrucción de crear la tarea:

Extraiga el código fuente y el proyecto en el almacén de Gitea, compile el código fuente a través de CCS y genere un archivo binario.

4. Despliegue binario:

Copie el archivo binario en el proyecto SkyEye.

5. Pruebas automatizadas a través de SkyEye:

Las pruebas automatizadas se realizan mediante scripts de Python o instrucciones de línea de comandos y se generan los resultados de las pruebas.

6. Jenkins envía correos electrónicos automáticamente:

Notifique el estado de construcción de la tarea y los resultados de las pruebas por correo electrónico.

Entre ellos, el proceso de configuración de Jenkins se muestra en la siguiente figura:

(1) Configure el nodo esclavo para garantizar que el servidor esté conectado al servidor de prueba;

▲ configuración del nodo esclavo

(2) Crear una nueva tarea de integración continua;

▲ Nueva configuración de tareas

(3) Clonar códigos fuente, scripts de prueba y proyectos de simulación;

▲ Clonar configuración del código fuente

▲ Configuración de datos de prueba de clonación

▲ Configuración del proyecto de prueba de clonación

(4) Configurar scripts de compilación y scripts de prueba automatizados;

▲ Scripts de compilación, configuración de script de prueba automatizada

(5) configuración de correo electrónico;

▲ Configuración de plantilla de correo

(6) Proceso de implementación;

▲ Ejecución de casos de prueba en Jenkins

(7) Notificación de los resultados de las pruebas.

Utilice scripts de Python para organizar los resultados de las pruebas y notifique los resultados de las pruebas a través del complemento de correo electrónico que viene con Jenkins.

▲Resultados de la prueba de recepción de correo

Supongo que te gusta

Origin blog.csdn.net/digi2020/article/details/131981124
Recomendado
Clasificación