Inhaltsverzeichnis:

Jenkins Job-Ampel - Gunook
Jenkins Job-Ampel - Gunook

Video: Jenkins Job-Ampel - Gunook

Video: Jenkins Job-Ampel - Gunook
Video: Jenkins World 2017: From Zero to Hero: Firing up a Holistic Continuous Delivery/DevOps Pipeline 2024, November
Anonim
Jenkins Job-Ampel
Jenkins Job-Ampel

Continuous Integration ist in der Softwareentwicklung die Praxis, alle Entwickler-Arbeitskopien mehrmals täglich zu einer gemeinsamen Mainline zusammenzuführen. Einige der Best Practices, um dies zu erreichen, sind:

  • Jeder verpflichtet sich jeden Tag zur Grundlinie,
  • den Build automatisieren,
  • Jeder kann die Ergebnisse der neuesten Builds sehen.
  • …und viele andere.

Um nur diese 3 oben genannten Punkte zu erfüllen, ist es wichtig, so schnell wie möglich über den Build-Status informiert zu werden.

Dieses Projekt hilft, dies zu erreichen, indem es eine kleine persönliche Ampel erstellt, die den aktuellen Baustatus anzeigt. Ich habe 2 Ampeln gebaut, die in den Jenkins-Automatisierungsserver integriert sind, der von NodeMCU regelmäßig über WiFi gezogen wird.

Schritt 1: Materialien und Werkzeuge

Materialien die ich verwendet habe:

  • NodeMCU (ich habe v3 verwendet) (BangGood.com)
  • Steckbrücken-Überbrückungskabel von Stecker zu Buchse, (BangGood.com)
  • 2 LED-Sets: rot, gelb, grün (BangGood.com)
  • 2 Sätze mit 3 Widerständen (450Ω, 500Ω, 22Ω)
  • 2 dünne, aber lange Prototyp-Leiterplatten (BangGood.com)
  • microUSB-Kabel als Stromversorgung
  • Irgendeine Box (ich habe eine für elektrische Hochspannungskomponenten verwendet. Ich habe viele verschiedene Formen und billig in meinem örtlichen Baumarkt gefunden)
  • 2 Stifte oder 2 dicke Rohre 0,5-1cm Innendurchmesser; und/oder 2 dicke Trinkhalme

Werkzeuge benötigt:

  • Scharfes Messer (z. B. Universalmesser zum Schneiden von Teppichen)
  • Drehwerkzeug
  • Heißklebepistole
  • Lötstation
  • Zangen, Diagonalzangen/Seitenschneider
  • Schraubenzieher
  • Stück dickes Papier
  • Doppelseitiges Klebeband
  • Du

Schritt 2: Ampeln

Ampeln
Ampeln
Ampeln
Ampeln
Ampeln
Ampeln

Um Ampeln zu bauen, verwenden wir Prototyping Board 20x80mm. Löten Sie LEDs so, dass sie in einer Linie positioniert sind. Ich habe diese Widerstandswerte verwendet:

  • rot: 510Ω
  • gelb: 470Ω
  • grün: 22Ω

Die Werte sind viel höher als empfohlen (20 mA max. Strom pro LED), aber beim Experimentieren mit verschiedenen Werten ist das Licht nicht zu hell und auch alle 3 haben eine ähnliche Intensität. Bitte beachten Sie, dass die Spannung für NodeMCU 3,3 V beträgt.

Die Verdrahtung ist unkompliziert, verbinden Sie einfach die (Löt-)Kathode jeder LED mit dem Widerstand und löten Sie dann an das männliche Ende des Überbrückungskabels. Auf einer Seite der Platine wollte ich nur LED-Elemente ohne andere "auftauchende" Teile wie Widerstandsbeine, Drähte usw. Deshalb habe ich eine "Technik" verwendet, bei der es sich um eine Art SMD mit PCB-Komponenten handelt.

Wir lassen es vorerst so; die Lichterabdeckung wird später gemacht.

Schritt 3: Box - Main

Box - Haupt
Box - Haupt
Box - Haupt
Box - Haupt
Box - Haupt
Box - Haupt

Wir müssen unsere NodeMCU in den Boden der Box einbetten. Die Box benötigt ein Loch für den microUSB-Anschluss, damit wir das Hauptgerät einschalten können. Ich habe grob die Lochposition gemessen und einfach gebohrt.

Dann habe ich die Kunststoff-Abstandshalter mit Schrauben an nodemcu befestigt. Ich habe etwas Leim in jede Ecke der Schachtel gelegt und die ganze Konstruktion darauf gelegt. Nachdem es abgekühlt war, schraubte ich NodeMCU ab und legte etwas zusätzlichen Heißkleber um die Abstandshalter, von denen ich sicher war, dass sie perfekt für NodeMCU positioniert waren. Dadurch wackelt im Inneren der Box nichts und wir können den microUSB-Port problemlos anbringen, ohne etwas im Inneren zu bewegen.

Schritt 4: Box - Deckel

Box - Deckel
Box - Deckel
Box - Deckel
Box - Deckel
Box - Deckel
Box - Deckel
Box - Deckel
Box - Deckel

Zuerst habe ich versucht, einen Trinkhalm als Stange für meine Ampel zu verwenden, aber nach einigen Tests habe ich festgestellt, dass der Kunststoff zu dünn ist und als ich ihn mit Heißkleber anbringen wollte, wurde er einfach sehr weich und hat sich sogar verändert seine Form. Also beschloss ich, etwas Härteres zu verwenden - Stifte. Ich habe mir einige billige transparente Stifte ausgesucht, die ich in gewünschter Länge abschneide und 4 Kabel (1 auf einmal) von Ampeln durch das Rohr stecke.

Ich bohrte Löcher in eine Mittellinie des Deckels entsprechend dem Durchmesser des Stiftes. Dann habe ich Stifte in Löcher eingebettet und sie auf die Unterseite des Deckels geklebt, um die Stangen gerade zu halten.

Ich habe auch etwas Heißkleber auf die Stange gelegt, um die Ampeltafeln an den Stangen zu befestigen.

Schritt 5: Zusammenbauen

Montage
Montage
Montage
Montage

Ich habe Drähte an die NodeMCU angeschlossen (Pinbelegung):

Ampel links:

  • rot auf D2 (GPIO4)
  • gelb bis D3 (GPIO0)
  • grün auf D4 (GPIO2)
  • Masse zu GND (ich habe gerade einen der GND-Pins von NodeMCU gewählt)

Rechte Ampel:

  • rot auf D5 (GPIO14)
  • gelb bis D6 (GPIO12)
  • grün bis D7 (GPIO13)
  • Masse auf GND (ich habe gerade einen der GND-Pins von NodeMCU gewählt)

…und ich schloss den Deckel. Die Drähte, die ich wählte, waren ziemlich lang, so dass ich ein wenig Probleme hatte, sie alle in die kleine Schachtel zu stecken, aber irgendwie habe ich es geschafft.

Schritt 6: Abdeckung der Lichter

Abdeckung für Lichter
Abdeckung für Lichter
Abdeckung für Lichter
Abdeckung für Lichter
Abdeckung für Lichter
Abdeckung für Lichter
Abdeckung für Lichter
Abdeckung für Lichter

Ich konnte keine fertigen Lösungen als Lichtabdeckungen finden - irgendeine Art Schachteln aus Süßigkeiten oder so. Also beschloss ich, sie von Hand zu bauen, indem ich einfach eine Schachtel aus einem Papier schneide.

Die Größe der Box, die ich gewählt habe, war: 20 mm x 15 mm x 85 mm.

Ich schneide die Löcher so, dass ich an den richtigen Stellen, an denen die LEDs positioniert waren, eine Art "Sterne" schneide. Ich habe sie mit doppelseitigem Klebeband verklebt.

Um die transparenten Stangen zu bedecken, können Sie einen Permanentmarker, nicht transparentes Klebeband, … verwenden. Ich habe schwarze Trinkhalme verwendet, die ich von einem Ende zum anderen durchschneide. Dann habe ich die Stangen abgedeckt.

Mit dem Endergebnis war ich mehr als zufrieden.

Schritt 7: Software

Es gibt viele Ansätze, um den aktuellen Build-Status anzuzeigen. Ich habe ein solches Verhalten implementiert:

Rotes oder grünes Licht leuchtet, wenn der Build fehlschlägt oder entsprechend erfolgreich ist. Gelbes Licht blinkt bei jedem HTTP-Aufruf und ist ständig eingeschaltet, wenn gerade ein Plan erstellt wird.

Sie können die Implementierung ganz einfach nach Ihren Bedürfnissen ändern - versuchen Sie zu experimentieren und prüfen Sie, was zu Ihnen und/oder Ihrem Team passt.

Sie müssen den Code einrichten, bevor Sie ihn auf Ihre NodeMCU hochladen. Sie müssen maximal 2 WLANs einstellen.

Außerdem müssen Sie Ihr Benutzertoken festlegen. Um API-Token zu erhalten, klicken Sie oben rechts in Jenkins auf Ihren Benutzernamen und dann auf Konfiguration. Sie finden eine Schaltfläche " API-Token anzeigen ". Um den Standardauthentifizierungswert zu erstellen, erstellen Sie eine Zeichenfolge mit dem Muster:

USER_NAME:API_TOKEN

und dann mit Base64 codieren. Z. B. Für die obige gefälschte Zeichenfolge sollten Sie den Base64-Wert erhalten:

VVNFUl9OQU1FOkFQSV9UT0tFTg==

Sie müssen auch die Pfade für Ihren Jenkins-Host, -Port und 2 Jobs festlegen.

Nach dieser Einrichtung und dem Hochladen der Skizze sind Sie bereit, Ihre Ampel zu verwenden.

Code ist auch auf GitHub verfügbar.

Schritt 8: Letzte Worte

Um das Gerät einzuschalten, schließen Sie das Gerät einfach an eine beliebige USB-Buchse an. Es verwendet eine WiFi-Verbindung, um auf das Internet zuzugreifen, sodass jede funktionierende USB-Buchse in Ordnung ist - entweder Computeranschluss oder Ladegerät. Nach einem Hochfahren und einer Verbindung mit dem WLAN zeigt Ihre Ampel den aktuellen Build-Status an.

Ich finde diese Ampel sehr praktisch. Sie stehen im Büro neben meinen Monitoren und wenn rotes Licht aufleuchtet, merke ich es sofort. Ich muss keine Zeit verschwenden, um die Build-Status direkt auf Jenkins zu überprüfen.

Eine Verbesserung könnte getan werden, indem man ein Ampelspielzeug verwendet, anstatt selbst eines von Grund auf neu zu bauen (Schrott?).

Ich hoffe, Sie finden etwas Inspiration, um Ihre eigene integrierte Jenkins-Ampel zu bauen.