[PYTHON] [Hackason] Über das Erstellen eines Werkzeugs, das auf Raspberry Pi gedruckt werden kann [Praktisches Werkzeug]

Einführung

In der jüngsten Entwicklung von Webanwendungen sind CI (Continuous Integration) und CD (Continuous Delivery) erheblich. Wenn Sie in ein Remote-Repository wechseln, wird die Produktionsumgebung automatisch aktualisiert, was praktisch ist.

Wenn es sich bei der Produktionsumgebung jedoch um ein lokales Terminal handelt, ist es nicht möglich, die CI-Tool-CD darauf zu haben, und Sie müssen jedes Mal die Remote-Änderung ziehen, sodass dies ** problematisch ** ist

Noch mehr in Abwesenheit von Zeit wie bei einem Hackathon Wenn die Produktionsumgebung RaspberryPi ist, möchte ich die Zeit und den Aufwand für die Eingabe von Befehlen reduzieren, anstatt sie mit RaspberryPi zu entwickeln.

Also habe ich ** CanDyPi ** erstellt, ein CD-Tool, das jedes Mal abgerufen wird, wenn das Remote-Repository aktualisiert wird, wenn Sie es in RaspberryPi ablegen!

GitHub PyPI

~~ Dies wird dir definitiv die höchste Auszeichnung im nächsten Jahr geben ~~

CanDyPi

CanDyPi is a Continuous Delivery tool for raspberry Pi.

candypi_structure.png.001.png

Einfach zu machen. Verwenden Sie die Webhook-Funktion von GitHub, um einen Webhook an einen ngrok-Endpunkt anzuschließen, der von einem Raspberry Pi weitergeleitet wird. Wenn CanDyPi die Repository-Aktualisierungsnachricht empfängt, führen Sie den Befehl pull aus, um auf die neueste Quelle zu aktualisieren.

CanDyPi ist in Python geschrieben und verwendet "flask" für den Server und "git python" für git-Operationen.

Wie benutzt man

Vorbereitungen

Verfahren

Kann in 4 Schritten verwendet werden

1. Raspeye, Git SSH-Verbindung

Wenn Sie es nicht auf SSH einstellen, müssen Sie das Kennwort jedes Mal eingeben, wenn Sie ziehen, damit Sie nicht von der Raspet Pie-Operation befreit werden ...

Artikel hier werden hilfreich sein. Verfahren für die SSH-Verbindung mit GitHub ~ Von der Generierung des öffentlichen / privaten Schlüssels ~

2. Installieren Sie CanDyPi und führen Sie es mit Raspeye aus

Sie können es mit pip installieren. ㊟ Bitte installieren und ausführen Sie mit der Python3-Serie

$ pip install candypi

Einfach auszuführen! Geben Sie als Argument den Pfad des Repositorys an, das Sie CD möchten. (Standardmäßig wird es auf Port 50000 gestartet.)

$ candypi /Users/tiwasa/sample_project

3. Starten Sie ngrok mit Raspetorte

Geben Sie den Port an, an dem candypi gestartet wurde, und starten Sie ngrok.

$ ngrok http 50000

ngrok by                                      (Ctrl+C to quit)

Session Status                online                                            
Account                       XXXXXXXX (Plan: Free)                             
Version                       2.2.8                                             
Region                        United States (us)                                
Web Interface                 http://127.0.0.1:4040                             
Forwarding                    http://XXXXXXXX.ngrok.io -> localhost:50000        
Forwarding                    https://XXXXXXXX.ngrok.io -> localhost:50000 

4. In GitHub die Einstellungen für webHooks

Registrieren Sie den Webhook in dem Repository, das Sie CD möchten. Fügen Sie unter Einstellungen-> Webhooks auf GitHub der Payload-URL zum Hinzufügen von Webhooks und Hinzufügen von Webhooks die Weiterleitung von ngrok hinzu:

(Andere Elemente können standardmäßig beibehalten werden.)

5. Fertigstellung

Wenn eine Aktualisierung im Hauptzweig des Repositorys erfolgt, das Sie CD möchten, wird der Befehl pull im lokalen Repository in Raspeye ausgeführt, um es zu aktualisieren.

schließlich

Ich habe es Ende des Jahres geschafft, also habe ich es noch nicht in die Praxis umgesetzt. Gibt es nicht einen erschwinglichen Hackathon?

Wenn Sie es verwenden, schreiben Sie es bitte in die GitHub-Ausgabe oder in den Kommentaren dieser Seite.

Wenn Sie Ihren Entwicklungs-PC im selben lokalen Netzwerk wie Raspai platzieren können, ist vscode remote development meiner Meinung nach bequemer. Je nach Veranstaltungsort kann es auch in einem anderen LAN platziert werden, sodass sich auch der Existenzwert von CanDyPi lohnt.

···Wann

... Ich möchte nachdenken

Recommended Posts

[Hackason] Über das Erstellen eines Werkzeugs, das auf Raspberry Pi gedruckt werden kann [Praktisches Werkzeug]
[Django] Über Benutzer, die für Vorlagen verwendet werden können
Einführung des Befehls "Glances", eines auf einen Blick verständlichen Überwachungstools, auf den Mac
Hinweise zum Erstellen von Zahlen, die mit matplotlib in Zeitschriften veröffentlicht werden können
Raspberry Pi aus der Ferne verschoben, damit es mit Python LED-verbunden werden kann
Ich habe versucht, einen x86-Bootloader zu erstellen, der vmlinux mit Rust booten kann
Erstellen Sie eine Django-Umgebung auf Raspai (MySQL)
Versuchen Sie, QR-Code mit Raspberry Pi zu verwenden
Erstellen Sie eine Python-Entwicklungsumgebung auf Raspberry Pi
Mit Raspberry Pi erstellter Dateifreigabeserver, der für Remote-Arbeiten verwendet werden kann
Deep Learning Kurs, der vor Ort zerquetscht werden kann
Ein Memorandum bei der Herstellung einer Überwachungskamera mit Raspeye
[Atcoder] [C ++] Ich habe ein Testautomatisierungstool erstellt, das während des Wettbewerbs verwendet werden kann
Pigpio auf Himbeer-Pi
Cython auf Raspberry Pi
Aus einem Buch, das Programmierer lernen können ... (Python): Über das Sortieren
Verwenden Sie Python auf Raspberry Pi 3, um "Temperatur (mit A / D-Wandler)" zu erkennen!
SSD 1306 OLED kann mit Raspeye + Python verwendet werden (Hinweis)
Hören Sie sich einen Roman an, der auf Amazon Polly erscheinen wird
Implementieren Sie einen Thread, der durch Ausnutzen von Yield angehalten werden kann
Lassen Sie uns ein Diagramm erstellen, auf das mit IPython geklickt werden kann
[Python] Zeichnen Sie mit Plotly Höhendaten auf eine sphärische Oberfläche und zeichnen Sie einen Globus, der rund und rund gedreht werden kann
Über die Sache, dass Fackelzusammenfassung wirklich verwendet werden kann, wenn ein Modell mit Pytorch erstellt wird
Verwenden Sie das Grafik-LCD als Zeichen-LCD, das auch chinesische Zeichen auf dem Rasberry Pi anzeigen kann
Die Geschichte, ein Tool zu erstellen, das auf Mac und Windows auf der Spieleentwicklungsseite ausgeführt wird
Über den Fehler, den ich beim Versuch, Adafruit_DHT von Python auf Raspberry Pi zu verwenden, festgestellt habe