Tabla de contenido:

Semáforos de trabajo de Jenkins: 8 pasos (con imágenes)
Semáforos de trabajo de Jenkins: 8 pasos (con imágenes)

Video: Semáforos de trabajo de Jenkins: 8 pasos (con imágenes)

Video: Semáforos de trabajo de Jenkins: 8 pasos (con imágenes)
Video: Como crear Tareas de jenkins (jobs de Jenkins) PARTE #4💥 CURSO JENKINS 2024, Noviembre
Anonim
Semáforos de trabajo de Jenkins
Semáforos de trabajo de Jenkins

En la ingeniería de software, la integración continua es la práctica de fusionar todas las copias de trabajo del desarrollador en una línea principal compartida varias veces al día. Algunas de las mejores prácticas para lograrlo son:

  • todos se comprometen con la línea de base todos los días,
  • automatizar la construcción,
  • todos pueden ver los resultados de las últimas versiones.
  • …y muchos otros.

Para cumplir solo con estos 3 puntos anteriores, es importante que se le notifique sobre el estado de la compilación lo más rápido posible.

Este proyecto ayuda a lograrlo mediante la creación de un semáforo personal en miniatura que indica el estado actual de la construcción. He construido 2 juegos de semáforos que están integrados al servidor de automatización de Jenkins, que NodeMCU activa periódicamente a través de WiFi.

Paso 1: Materiales y herramientas

Materiales que utilicé:

  • NodeMCU (usé v3) (BangGood.com)
  • Cables de puente de placa de pruebas macho a hembra, (BangGood.com)
  • 2 juegos de LED: rojo, amarillo, verde (BangGood.com)
  • 2 juegos de 3 resistencias (450Ω, 500Ω, 22Ω)
  • 2 placas PCB prototipo delgadas pero largas (BangGood.com)
  • cable microUSB como fuente de alimentación
  • Alguna caja (usé una para componentes eléctricos de alto voltaje. Encontré muchas formas diferentes y baratas en mi tienda minorista de bricolaje local)
  • 2 bolígrafos o 2 tubos gruesos de 0,5-1 cm de diámetro interno; y / o 2 pajitas gruesas para beber

Herramientas necesarias:

  • Cuchillo afilado (p. Ej., Cuchillo multiusos para cortar alfombras)
  • Herramienta rotativa
  • Pistola de silicona
  • Estación de soldadura
  • Alicates, alicates diagonales / alicates laterales
  • Destornillador
  • Pedazo de papel grueso
  • Cinta adhesiva de doble cara
  • usted

Paso 2: Semáforos

Semáforos
Semáforos
Semáforos
Semáforos
Semáforos
Semáforos

Para la construcción de semáforos utilizamos una placa de prototipos de 20x80 mm. Suelde los LED para que queden colocados en línea. He usado estos valores de resistencia:

  • rojo: 510Ω
  • amarillo: 470Ω
  • verde: 22Ω

Los valores son mucho más altos de lo recomendado (corriente máxima de 20 mA por LED), pero experimentando con diferentes valores, la luz no es demasiado brillante y además los 3 tienen una intensidad similar. Tenga en cuenta que el voltaje es de 3,3 V para NodeMCU.

El cableado es sencillo, simplemente conecte (suelde) el cátodo de cada LED con la resistencia y luego suelde al extremo macho del cable de puente. En un lado de la placa, solo quería elementos LED sin ninguna otra parte "emergente" como patas de resistencias, cables, etc. Por eso he utilizado una "técnica" que es una especie de SMD que utiliza componentes de PCB.

Lo dejamos así por ahora; la cubierta de luces se hará más tarde.

Paso 3: Caja - Principal

Caja - Principal
Caja - Principal
Caja - Principal
Caja - Principal
Caja - Principal
Caja - Principal

Necesitamos incrustar nuestro NodeMCU en la parte inferior de la caja. La caja necesita un orificio para el puerto microUSB para que podamos encender la unidad principal. Medí burlonamente la posición del agujero y simplemente lo perforé.

Luego adjunté los espaciadores de plástico con tornillos a nodemcu. Puse un poco de pegamento en cada esquina de la caja y le puse toda la construcción. Después de que se enfrió, desatornillé NodeMCU y puse un poco de pegamento caliente adicional alrededor de los espaciadores que estaba seguro de que estaban colocados perfectamente para NodeMCU. Gracias a esto, nada se tambalea dentro de la caja y podemos conectar fácilmente el puerto microUSB sin mover cosas dentro.

Paso 4: Caja - Tapa

Caja - Tapa
Caja - Tapa
Caja - Tapa
Caja - Tapa
Caja - Tapa
Caja - Tapa
Caja - Tapa
Caja - Tapa

Primero intenté usar una pajita para beber como poste para mis semáforos, pero después de algunas pruebas, descubrí que el plástico es demasiado delgado y cuando quise usar un pegamento caliente para unirlo, se volvió muy suave e incluso cambió. su forma. Así que decidí usar algo más difícil: bolígrafos. Elegí algunos bolígrafos transparentes baratos, que corté en la longitud deseada y coloqué 4 cables (1 a la vez) de los semáforos a través de la tubería.

Perforé agujeros en la línea media de la tapa de acuerdo con el diámetro del bolígrafo. Luego inserté bolígrafos dentro de los agujeros y los pegué en la parte inferior de la tapa tratando de mantener los postes rectos.

También puse un poco de pegamento caliente en la parte superior del poste para unir las tablas de los semáforos a los postes.

Paso 5: Montaje

Montaje
Montaje
Montaje
Montaje

Conecté cables al NodeMCU (pinout):

Semáforo izquierdo:

  • rojo a D2 (GPIO4)
  • amarillo a D3 (GPIO0)
  • verde a D4 (GPIO2)
  • tierra a GND (acabo de elegir uno de los pines GND de NodeMCU)

Semáforo derecho:

  • rojo a D5 (GPIO14)
  • amarillo a D6 (GPIO12)
  • verde a D7 (GPIO13)
  • tierra a GND (solo elegí uno de los pines GND de NodeMCU)

… Y cerré la tapa. Los cables que elegí eran bastante largos, así que tuve algunos problemas para ponerlos todos dentro de la caja pequeña, pero de alguna manera me las arreglé para hacerlo.

Paso 6: Cubierta de luces

Cubierta de luces
Cubierta de luces
Cubierta de luces
Cubierta de luces
Cubierta de luces
Cubierta de luces
Cubierta de luces
Cubierta de luces

No pude encontrar ninguna solución lista como cubiertas de luces, algún tipo de cajas de caramelos o algo así. Entonces decidí construirlos a mano simplemente cortando una caja de un papel.

El tamaño de la caja que elegí fue: 20 mm x 15 mm x 85 mm.

Corté los agujeros para cortar una especie de "estrellas" en los lugares adecuados donde se colocaron los LED. Los pegué con cinta adhesiva de doble cara.

Para cubrir los postes transparentes, puedes usar un marcador permanente, cinta adhesiva no transparente,… Usé pajitas negras para beber que corté de un extremo a otro. Luego cubrí los postes.

Estaba más que feliz con el resultado final.

Paso 7: software

Hay muchos enfoques para indicar el estado de compilación actual. Implementé tal comportamiento:

La luz roja o verde se enciende cuando la construcción falla o pasa en consecuencia. La luz amarilla parpadea cada vez que se realiza una llamada HTTP y se enciende continuamente cuando se está construyendo un plan.

Puede cambiar fácilmente la implementación de acuerdo con sus necesidades: intente experimentar y verifique lo que se adapte a usted y / o su equipo.

Debe configurar el código antes de cargarlo en su NodeMCU. Debe configurar un máximo de 2 WiFis.

También debe configurar su token de usuario. Para obtener el token de API, haga clic en Su nombre de usuario en la esquina superior derecha en Jenkins, luego en Configuración. Puede encontrar un botón "Mostrar token API". Para construir el valor de autenticación básica, cree una cadena usando el patrón:

USER_NAME: API_TOKEN

y luego codifíquelo usando Base64. P.ej. para la cadena falsa anterior, debe obtener el valor Base64:

VVNFUl9OQU1FOkFQSV9UT0tFTg ==

También debe configurar el host de Jenkins, el puerto y las rutas de 2 trabajos.

Después de esta configuración y de cargar el boceto, estará listo para usar sus semáforos.

El código también está disponible en GitHub.

Paso 8: Últimas palabras

Para encender el dispositivo, simplemente conecte el dispositivo a cualquier toma USB. Utiliza conexión WiFi para acceder a Internet, por lo que cualquier toma USB que funcione está bien, ya sea puerto de computadora o cargador. Después de arrancar y conectarse a WiFi, los semáforos comenzarán a mostrar el estado de compilación actual.

Encuentro este semáforo muy útil. Están parados junto a mis monitores en la oficina y cada vez que se enciende la luz roja, lo noto de inmediato. No necesito perder el tiempo para verificar los estados de compilación directamente en Jenkins.

Se podría hacer una mejora usando algún juguete de semáforo en lugar de construir uno solo desde cero (¿basura?).

Espero que encuentre algo de inspiración para construir sus propios semáforos integrados Jenkins.

Recomendado: