Home > Technologie > Jenkins CI Ampel

Jenkins CI Ampel

0
Advertisement

Jenkins CI Ampel

So habe ich einen Arduino Uno herumliegen und konnte nicht an irgendwelche Projekte außer denjenigen denken, die in der Software gebündelt wurden.

Ich entschied mich dafür, stattdessen eine Ampel zu bauen, anstelle des normalen zeitlichen Wechsels von LEDs wollte ich den Status unseres Continuous Integration Servers (Jenkins) lesen.

Von allen Tutorials, die ich im Internet gefunden habe, nicht ein einziger arbeitete aus der Box, so habe ich beschlossen, es zu brechen, um es einfachste Form ist und es von dort.

Schritt 1: Erforderliche Elemente

Jenkins CI Ampel

Jenkins CI Ampel

Jenkins CI Ampel

Jenkins CI Ampel

Jenkins CI Ampel

Hardware.

  1. Arduino (Ich habe von der UNO V3 Gebrauch gemacht, aber irgendwelche sollten funktionieren. {Bitte korrigieren Sie mich, wenn ich falsch liege.})
  2. Brotscheibe
  3. Brotschaltkabel
  4. LED's (rot, gelb, grün)
  5. Widerstände (180 Ohm ist perfekt. {Bänder: Braun, Grau, Braun})

Software.

  1. PyCharm (von Jetbrains)
  2. Arduino

Bitte folgen Sie den Details der einzelnen Anwendungen, wie auf den jeweiligen Webseiten angegeben.

Schritt 2: Erstellen des Python-Skripts (PyCharm)

Kopieren Sie den folgenden Code, nachdem Sie PyCharm auf Ihrem Computer installiert haben:

>>> Kopiere alles unterhalb dieser Zeile <<<

  Import jsonimport sys import urllib2 Importzeit Import Serien # Konfigurationen ping_server = 30 jenkins_jobs = [ "Your Job Name hier"] ser = serial.Serial ( 'COM3', 9600) # Arduino Konfiguration SUCCESS = 'b' failure = 'r' BUILDING = 'a' UNSTABLE = 'y' time.sleep (5) def get_status (jobname): jenkinsUrl = "http: // Ihr Jenkins Server: Port / Job /" versuchen: jenkinsStream = urllib2.urlopen (jenkinsUrl + jobname + " / lastBuild / api / json ") außer urllib2.HTTPError, e: print" URL-Fehler: "+ str (e.code) print" (Jobname [ "+ jobname +"] wahrscheinlich falsch) "sys.exit (2) versuchen: buildStatusJson = json.load (jenkinsStream) except: print "Fehler json zu analysieren" sys.exit (3) zurückkehren jobname, buildStatusJson [ "Zeitstempel"], buildStatusJson [ "Ergebnis"], während (1): für Arbeit in jenkins_jobs: status = get_status (Job) # Druckstatus [0], Status [2], wenn Status [2] == "unstable": ser.write (unstable) elif Status [2] == "SUCCESS": ser.write (SUCCESS) elif Status [2] == "Ausfall": ser.write (FEHLER) elif Status [2] == None: ser.write (Gebäude) time.sleep (ping_server)

Notizen:

Unter Windows 7 ist die Arduinos COM-Portnummer unter dem Geräte-Manager zu sehen.

Schritt 3: Erstellen des Arduino Script (Arduino)

Einfach kopieren und fügen Sie den folgenden Code in die Arduino Anwendung und laden Sie es auf das Gerät.

  Int incomingByte = 0;  // für eingehendes serielles Datavoid setup () {// Grüner pinMode (12, OUTPUT);  // gelber pinMode (11, AUSGANG);  // Roter PinMode (10, AUSGANG);  Serial.begin (9600);  // Öffnet die serielle Schnittstelle, setzt Datenrate auf 9600 bps} void loop () {if (Serial.available ()> 0) {incomingByte = Serial.read ();  } If (incomingByte == 'b') {green ();  } Else if (incomingByte == 'y') {gelb ();  } Else if (incomingByte == 'r') {red ();  } Else if (incomingByte == 'all') {all ();  }} Void green () {digitalWrite (12, HIGH);  DigitalWrite (11, LOW);  DigitalWrite (10, LOW);  Verzögerung (1000);  } Void gelb () {digitalWrite (12, LOW);  DigitalWrite (11, HIGH);  DigitalWrite (10, LOW);  Verzögerung (1000);  } Void rot () {digitalWrite (12, LOW);  DigitalWrite (11, LOW);  DigitalWrite (10, HIGH);  Verzögerung (1000);  } Void all () {digitalWrite (12, HIGH);  DigitalWrite (11, HIGH);  DigitalWrite (10, HIGH);  Verzögerung (1000);  aufrechtzuerhalten.

Schritt 4: Hardware anschließen

Jenkins CI Ampel

Nach dem Diagramm genügt es. aufrechtzuerhalten.

Schritt 5: Inbetriebnahme!

Jenkins CI Ampel

Jenkins CI Ampel

Jenkins CI Ampel

Jenkins CI Ampel

Wenn der Build übergeben wurde, wird die grüne LED aktiviert

Wenn der Build übergeben wurde, aber Probleme irgendwelcher Art es instabil gemacht hat, wird die gelbe LED aktiviert.

Wenn der Build fehlgeschlagen ist, wird die rote LED aktiviert.

Wenn der Build gerade erstellt wird, werden alle LEDs aktiviert.

Und das ist es.

Meine Ansichten für die Zukunft auf diesem Projekt ist, eine kundenspezifische Form zu bilden, um die Schaltung zu beherbergen.

Ich hoffe, Sie haben so viel Spaß, wie ich mit diesem Projekt hatte.

Orrin.

Related Reading