Docker-Image zum Bauen von Gluon

Mit dem Fernziel von Continuous Integration habe ich ein Docker-Image erstellt. Momentan stellt es lediglich eine konsistente Build-Umgebung bereit. In Zukunft möchte ich es aber gerne, am liebsten mit eurer Hilfe, erweitern, sodass es für interessierte Freifunker einfacher wird, selbst Images für ihre Community zu bauen.

Ich freue mich auf eure Anregungen, Vorschläge und Pull-Requests!

Update:
Ich habe mit meinen noch rudimentären Bashkenntnissen ein Skript erstellt, mit dem Gluon nun auf jedem Linuxhost gebaut werden kann, ohne, dass man sich um Abhängigkeiten kümmern muss.

Die einzelnen Parameter sind:

  • -b, optional: Setzt BROKEN=1, damit wird die Firmware auch für Geräte kompiliert, die den Status BROKEN haben.
    *-d, optional: Führt vor dem Kompilieren einen Dirclean durch. Kann bei einem Wechsel des Gluon-Releases nötig sein.
    *-r <Gluon-Release>: Setzt das Gluon-Release, z. B. 2017.1.5.
  • -t <Gluon-Target>: Setzt das Gluon-Target, z. B. ar71xx-generic.
  • -v <Gluon-Version>, optional: Setzt die Gluon-Version, die selbst frei festgelegt werden kann, z. B. 1.2.0.
  • -l <Lede-Pfad>, optional: Gibt den Pfad zum Lede-Verzeichnis an, in welchem die während des Kompilieren entstehenden Daten abgelegt werden. Eine Wiederverwendung beschleunigt das Kompilieren bereits zuvor kompilierter Targets erheblich. Standardpfad: lede im aktuellen Verzeichis
  • -o <Output-Pfad>, optional: Gibt den Pfad zum output-Verzeichnis an, in welchem die kompilierten Firmwareimages abgelegt werden. Standardpfad: output im aktuellen Verzeichnis.
  • -s <Site-Git-URL>: URL zum Git-Repository der site.
  • -z <Site-Branch>, optional: Hier kann, falls nötig, der passende Git-Branch zur site angegeben werden. Standardwert: master.
  • -j <Jobanzahl>, optional: Legt die Anzahl der make-Jobs fest. Standardwert: Anzahl der Threads der CPU.

Als Beispiel ein Aufruf, mit dem ich eine aktuelle Firmware für meinen Knoten gebaut habe:
sudo bash build.sh -g v2017.1.x -r v2017.1.x -v 1.3.3.7 -l lede -s https://github.com/FreiFunkMuenster/site-ffms.git -z Domäne-46 -t ar71xx-tiny

Ich bin mit bash-Skripten noch nicht wirklich vertraut, weshalb es evtl. noch Bugs gibt und man das ein oder andere wahrscheinlich eleganter lösen kann. Wenn euch diezbezüglich etwas auffällt, dann meldet euch bzw. erstellt einen Pull-Request :slight_smile:

7 Likes

Ich war so frei und habe damit mal n CI/CD aufgesetzt.
Ist erstmal n Test. Aber das Docker Image macht es schon einfacher :slight_smile:

Kann es sein, dass wir mal wieder das Rad mehrfach erfinden?

Zumindest CI hat das Gluon-Team auch seit ein paar Monaten auf der ToDo.

Welchen Docker Container ist da jetzt nun verwende ist mir eigentlich recht gleich.
Neu bauen wollte ich das eh nicht.
Wenn die das auf der Agenda haben, melde ich mich doch einfach mal da :-).

Danke für den Hinweis!

1 Like