
Nachdem ich ein bisschen mit CI / CD (gitlab ce) gearbeitet hatte, stieß ich kürzlich auf Aktionen mit Github und beschloss zu versuchen, was für ein Biest das ist.
Es war nicht sehr interessant, JS oder andere Lösungen zusammenzustellen, deshalb habe ich beschlossen, die Zusammenstellung der Arduino-Skizze für esp8266 zu testen, um eine kompilierte Binärdatei zu erhalten, die direkt auf den Mikrocontroller heruntergeladen werden kann, ohne dass eine lokale Arduino-IDE installiert werden muss.
Aktionen oder PipelineEine Folge von Befehlen und Aktionen, die nach bestimmten Ereignissen gestartet werden (z. B. Push in den Git-Repository-Zweig), dh nach dem Ändern einer Datei. Sie können die Datei direkt mit dem Github-Editor ändern, und das Projekt wird automatisch erstellt und kompiliert. Pipeline wird nicht nur zum Kompilieren, sondern auch für verschiedene Codetests verwendet.
Ich habe nicht damit begonnen, ein Docker-Image für all dies zu erstellen, da dies die Organisation von CI / CD erschweren würde. Außerdem habe ich kein Image für jede Bibliothek.
Wie kann das nützlich sein? Angenommen, es gibt eine Art Open-Source-Projekt für verschiedene Versionen von Controllern mit unterschiedlichem Arbeitsspeicher. Das Kompilieren von Code für alle Plattformen nimmt viel Zeit in Anspruch. In Actions können Sie einmalig die Plattformen konfigurieren, für die eine Assembly erforderlich ist. Bei jeder Änderung des Codes im Repository für jede Version der Plattform wird eine fertige Firmware bereitgestellt.
Der Code des Aktionsskripts selbst:
on: [push] jobs: build: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v1 - name: install arduino cli run: curl -fsSL https:
Faktisch -
- Auf einem sauberen System mit Ubuntu 18.04 installieren wir Arduino-Cli
- Fügen Sie die esp8266-Unterstützung hinzu
- Kompilieren Sie den im Repository gehosteten Arduino-Code.
- Wir erstellen ein Release, in dem wir die kompilierte Binärdatei hinzufügen

Aktionen auf Github sind für Open-Source-Projekte kostenlos, jetzt sind sie auch für geschlossene Repositories verfügbar, aber es scheint, als würden sie nach einer Weile nicht mehr zugänglich sein.
Ich gebe nicht vor, Devops zu sein, manche Dinge könnten einfacher gemacht werden, aber auf jeden Fall funktioniert es.