Πίνακας περιεχομένων:

Jenkins Job Traffic Lights: 8 βήματα (με εικόνες)
Jenkins Job Traffic Lights: 8 βήματα (με εικόνες)

Βίντεο: Jenkins Job Traffic Lights: 8 βήματα (με εικόνες)

Βίντεο: Jenkins Job Traffic Lights: 8 βήματα (με εικόνες)
Βίντεο: Masterclass | Πλήρες μάθημα JENKINS για αρχάριους | Βήμα προς βήμα Ερωτήσεις συνέντευξης της Jenkins 2024, Νοέμβριος
Anonim
Φώτα κυκλοφορίας Jenkins Job
Φώτα κυκλοφορίας Jenkins Job

Στη μηχανική λογισμικού, η συνεχής ολοκλήρωση είναι η πρακτική της συγχώνευσης όλων των αντιγράφων εργασίας προγραμματιστή σε μια κοινή κεντρική γραμμή αρκετές φορές την ημέρα. Μερικές από τις καλύτερες πρακτικές για να επιτευχθούν είναι:

  • όλοι δεσμεύονται για τη βασική γραμμή κάθε μέρα,
  • αυτοματοποιήστε την κατασκευή,
  • Ο καθένας μπορεί να δει τα αποτελέσματα των τελευταίων κατασκευών.
  • …και πολλοί άλλοι.

Για να εκπληρώσετε αυτά τα 3 σημεία παραπάνω, είναι σημαντικό να ειδοποιηθείτε για την κατάσταση κατασκευής όσο το δυνατόν γρηγορότερα.

Αυτό το έργο βοηθά στην επίτευξη αυτού με τη δημιουργία ενός μίνι, προσωπικού φωτεινού σηματοδότη που υποδεικνύει την τρέχουσα κατάσταση κατασκευής. Έχω φτιάξει 2 σετ φανών που είναι ενσωματωμένα στον διακομιστή αυτοματισμού Jenkins, ο οποίος τραβιέται από το NodeMCU περιοδικά μέσω WiFi.

Βήμα 1: Υλικά και εργαλεία

Υλικά που χρησιμοποίησα:

  • NodeMCU (χρησιμοποίησα v3) (BangGood.com)
  • Καλώδια από jumper αρσενικά προς θηλυκά, (BangGood.com)
  • 2 σετ LED: κόκκινο, κίτρινο, πράσινο (BangGood.com)
  • 2 σετ 3 αντιστάσεων (450Ω, 500Ω, 22Ω)
  • 2 λεπτές αλλά μακρές πρωτότυπες σανίδες PCB (BangGood.com)
  • καλώδιο microUSB ως τροφοδοτικό
  • Κάποιο κουτί (χρησιμοποίησα ένα για ηλεκτρικά εξαρτήματα υψηλής τάσης. Βρήκα πολλά διαφορετικά σχήματα και φθηνά στο τοπικό κατάστημα λιανικής πώλησης DIY)
  • 2 στυλό ή 2 σωλήνες πάχους 0,5-1cm εσωτερική διάμετρο. και/ή 2 χοντρά καλαμάκια ποτών

Απαιτούμενα εργαλεία:

  • Κοφτερό μαχαίρι (π.χ. βοηθητικό μαχαίρι για κοπή χαλιού)
  • Περιστροφικό εργαλείο
  • Πυροβόλο θερμής κόλλας
  • Σταθμός συγκόλλησης
  • Πένσες, διαγώνιες πένσες/πλευρικοί κόφτες
  • Κατσαβίδι
  • Κομμάτι χοντρό χαρτί
  • Κολλητική ταινία διπλής όψης
  • Εσείς

Βήμα 2: Φώτα κυκλοφορίας

Φανάρια
Φανάρια
Φανάρια
Φανάρια
Φανάρια
Φανάρια

Για την κατασκευή φανών, χρησιμοποιούμε πίνακα πρωτοτύπων 20x80mm. Συγκολλήστε LED έτσι ώστε να είναι τοποθετημένα σε μια γραμμή. Έχω χρησιμοποιήσει αυτές τις τιμές αντίστασης:

  • κόκκινο: 510Ω
  • κίτρινο: 470Ω
  • πράσινο: 22Ω

Οι τιμές είναι πολύ υψηλότερες από τις συνιστώμενες (μέγιστο ρεύμα 20mA ανά LED), αλλά πειραματίζοντας με διαφορετικές τιμές, το φως δεν είναι πολύ έντονο και επίσης και τα 3 έχουν παρόμοια ένταση. Λάβετε υπόψη ότι η τάση είναι 3.3V για το NodeMCU.

Η καλωδίωση είναι ευθεία προς τα εμπρός, απλά συνδέστε (συγκολλήστε) την κάθοδο κάθε LED με αντίσταση και στη συνέχεια συγκολλήστε με το αρσενικό άκρο του καλωδίου βραχυκυκλωτήρα. Από τη μία πλευρά του πίνακα ήθελα μόνο στοιχεία LED χωρίς κανένα άλλο "αναδυόμενο" τμήμα όπως πόδια αντιστάσεων, σύρματα και ούτω καθεξής. Γι 'αυτό χρησιμοποίησα μια "τεχνική" που είναι ένα είδος SMD που χρησιμοποιεί εξαρτήματα PCB.

Το αφήνουμε έτσι προς το παρόν. το κάλυμμα των φώτων θα γίνει αργότερα.

Βήμα 3: Κουτί - Κύριο

Κουτί - Κύριο
Κουτί - Κύριο
Κουτί - Κύριο
Κουτί - Κύριο
Κουτί - Κύριο
Κουτί - Κύριο

Πρέπει να ενσωματώσουμε το NodeMCU στο κάτω μέρος του κουτιού. Το κουτί χρειάζεται μια τρύπα για τη θύρα microUSB, ώστε να μπορούμε να τροφοδοτήσουμε την κύρια μονάδα. Μέτρησα κατάφωρα τη θέση της τρύπας και μόλις την τρύπησα.

Στη συνέχεια, έβαλα τους πλαστικούς αποστάτες χρησιμοποιώντας βίδες στο nodemcu. Έβαλα λίγη κόλλα σε κάθε γωνία του κουτιού και έβαλα όλη την κατασκευή επάνω. Αφού κρυώσει, ξεβίδωσα το NodeMCU και έβαλα κάποια πρόσθετη θερμή κόλλα γύρω από τα διαχωριστικά για τα οποία ήμουν σίγουρος ότι τοποθετήθηκαν τέλεια για το NodeMCU. Εξαιτίας αυτού, τίποτα δεν κουνιέται μέσα στο κουτί και μπορούμε εύκολα να συνδέσουμε τη θύρα microUSB χωρίς να μεταφέρουμε πράγματα μέσα.

Βήμα 4: Κουτί - καπάκι

Κουτί - καπάκι
Κουτί - καπάκι
Κουτί - καπάκι
Κουτί - καπάκι
Κουτί - καπάκι
Κουτί - καπάκι
Κουτί - καπάκι
Κουτί - καπάκι

Πρώτα προσπάθησα να χρησιμοποιήσω καλαμάκια ποτού ως κοντάρι για τα φανάρια μου, αλλά μετά από κάποιες δοκιμές, διαπίστωσα ότι το πλαστικό είναι πολύ λεπτό και όταν ήθελα να χρησιμοποιήσω μια ζεστή κόλλα για να το προσαρτήσω, έγινε πολύ μαλακό και μάλιστα άλλαξε το σχήμα του. Έτσι αποφάσισα να χρησιμοποιήσω κάτι πιο δύσκολο - στυλό. Έχω επιλέξει φθηνά διαφανή στυλό, τα οποία έκοψα στο επιθυμητό μήκος και έβαλα 4 καλώδια (1 κάθε φορά) από τα φανάρια μέσα από το σωλήνα.

Άνοιξα τρύπες σε μια μεσαία γραμμή του καπακιού σύμφωνα με τη διάμετρο του στυλό. Στη συνέχεια, ενσωμάτωσα στυλό μέσα σε τρύπες και τις έκανα να κολλήσουν στην κάτω πλευρά του καπακιού προσπαθώντας να κρατήσω τους πόλους ίσια.

Έβαλα επίσης κάποια ζεστή κόλλα στην κορυφή του στύλου για να στερεώσω τους πίνακες των φανών στους στύλους.

Βήμα 5: Συναρμολόγηση

Συναρμολόγηση
Συναρμολόγηση
Συναρμολόγηση
Συναρμολόγηση

Συνδέσα καλώδια στο NodeMCU (pinout):

Αριστερό φανάρι:

  • κόκκινο σε D2 (GPIO4)
  • κίτρινο σε D3 (GPIO0)
  • πράσινο σε D4 (GPIO2)
  • γείωση στο GND (μόλις επέλεξα έναν από τους ακροδέκτες GND του NodeMCU)

Σωστό φανάρι:

  • κόκκινο σε D5 (GPIO14)
  • κίτρινο έως D6 (GPIO12)
  • πράσινο έως D7 (GPIO13)
  • γείωση στο GND (Απλώς επέλεξα έναν από τους ακροδέκτες GND του NodeMCU)

… Και έκλεισα το καπάκι. Τα καλώδια που επέλεξα ήταν αρκετά μακριά, οπότε είχα λίγο πρόβλημα να τα βάλω όλα μέσα στο μικρό κουτί, αλλά με κάποιο τρόπο τα κατάφερα.

Βήμα 6: Κάλυμμα φώτων

Κάλυμμα φώτων
Κάλυμμα φώτων
Κάλυμμα φώτων
Κάλυμμα φώτων
Κάλυμμα φώτων
Κάλυμμα φώτων
Κάλυμμα φώτων
Κάλυμμα φώτων

Δεν μπορούσα να βρω έτοιμες λύσεις ως καλύμματα φώτων - κάποιου είδους κουτιά από καραμέλες ή κάτι τέτοιο. Έτσι αποφάσισα να τα φτιάξω στο χέρι απλά κόβοντας ένα κουτί από ένα χαρτί.

Το μέγεθος του κουτιού που επέλεξα ήταν: 20mm x 15mm x 85mm.

Έκοψα τις τρύπες έτσι ώστε να κόψω ένα είδος "αστεριών" σε κατάλληλα σημεία όπου ήταν τοποθετημένα τα LED. Τα κόλλησα χρησιμοποιώντας κολλητική ταινία διπλής όψης.

Για να καλύψετε τους διαφανείς πόλους, μπορείτε να χρησιμοποιήσετε κάποιο μόνιμο μαρκαδόρο, μη διαφανή ταινία,… Χρησιμοποίησα μαύρα καλαμάκια ποτών τα οποία έκοψα από άκρη σε άκρη. Μετά κάλυψα τους στύλους.

Χάρηκα περισσότερο από το τελικό αποτέλεσμα.

Βήμα 7: Λογισμικό

Υπάρχουν πολλές προσεγγίσεις που υποδεικνύουν την τρέχουσα κατάσταση κατασκευής. Εφάρμοσα μια τέτοια συμπεριφορά:

Κόκκινο ή πράσινο φως ανάβει όταν η κατασκευή αποτυγχάνει ή περνάει ανάλογα. Το κίτρινο φως αναβοσβήνει κάθε φορά που πραγματοποιείται μια κλήση HTTP και ανάβει συνεχώς όταν βρίσκεται σε εξέλιξη ένα σχέδιο.

Μπορείτε εύκολα να αλλάξετε την εφαρμογή σύμφωνα με τις ανάγκες σας - δοκιμάστε να πειραματιστείτε και να ελέγξετε τι ταιριάζει σε εσάς και/ή στην ομάδα σας.

Πρέπει να ρυθμίσετε τον κώδικα πριν τον ανεβάσετε στο Your NodeMCU. Πρέπει να ορίσετε έως 2 WiFis.

Επίσης, πρέπει να ορίσετε το διακριτικό χρήστη σας. Για να λάβετε το διακριτικό API, κάντε κλικ στο Όνομα χρήστη σας επάνω δεξιά στο Jenkins και, στη συνέχεια, στη Διαμόρφωση. Μπορείτε να βρείτε ένα κουμπί "Εμφάνιση διακριτικού API". Για να δημιουργήσετε τη βασική τιμή ελέγχου ταυτότητας, δημιουργήστε μια συμβολοσειρά χρησιμοποιώντας το μοτίβο:

USER_NAME: API_TOKEN

και στη συνέχεια κωδικοποιήστε το χρησιμοποιώντας το Base64. Π.χ. για την παραπάνω ψεύτικη συμβολοσειρά, θα πρέπει να λάβετε την τιμή Base64:

VVNFUl9OQU1FOkFQSV9UT0tFTg ==

Πρέπει επίσης να ορίσετε τις διαδρομές του διακομιστή, της θύρας και των 2 εργασιών του Jenkins.

Μετά από αυτήν τη ρύθμιση και τη μεταφόρτωση του σκίτσου - Είστε έτοιμοι να χρησιμοποιήσετε τα φανάρια σας.

Ο κωδικός είναι επίσης διαθέσιμος στο GitHub.

Βήμα 8: Τελευταίες λέξεις

Για να ενεργοποιήσετε τη συσκευή, απλώς συνδέστε τη συσκευή σε οποιαδήποτε πρίζα USB. Χρησιμοποιεί σύνδεση WiFi για πρόσβαση στο Διαδίκτυο, έτσι ώστε οποιαδήποτε λειτουργική πρίζα USB να είναι εντάξει - είτε θύρα υπολογιστή είτε φορτιστής. Μετά την εκκίνηση και τη σύνδεση στο WiFi, τα φανάρια σας θα αρχίσουν να εμφανίζουν την τρέχουσα κατάσταση κατασκευής.

Θεωρώ ότι αυτά τα φανάρια είναι πολύ χρήσιμα. Στέκονται δίπλα στις οθόνες μου στο γραφείο και όποτε ανάβει κόκκινο φως - το παρατηρώ αμέσως. Δεν χρειάζεται να χάσω χρόνο για να ελέγξω τις καταστάσεις κατασκευής απευθείας στο Jenkins.

Μια βελτίωση θα μπορούσε να γίνει με τη χρήση κάποιων παιχνιδιών φανών αντί να κατασκευάσω ένα μόνος μου από την αρχή (σκουπίδια;).

Ελπίζω να βρείτε κάποια έμπνευση για να φτιάξετε τα δικά σας ενσωματωμένα φανάρια Jenkins.

Συνιστάται: