-
Notifications
You must be signed in to change notification settings - Fork 3
site ffka und BuildBot
Dieses Repository enthält neben dem master noch persönliche Branches und optional Feature-Branches, die neue Funktionalitäten für den master vorbereiten. Sämtliche Änderungen fließen im master zusammen. Der Entwicklungsstand sowohl im master als auch den anderen Branches wird mit Tags festgehalten.
Daher wird all jenen, die die site.config nur verwenden möchten, nahegelegt, das letzte stable-Tag auszuchecken und zum Bauen der Freifunk-Firmware verwenden.
Beispielsweise erstellt folgender Befehl den lokalen Branch 0.2.90-stable.1
anhand des Tags tags/0.2.90-stable.1
:
git checkout -b 0.2.90-stable.1 tags/0.2.90-stable.1
.
site-ffka:
- Offiziell: master
- Inoffiziell: persönliche Branches
- Tags: offizielle und inoffizielle
Jenkins-VM:
- Jenkins als CI für Pull Requests (Todo)
Idee: Jenkins startet einen Build, sobald ein Pull-Request gestellt wird. - Als BuildBot:
Jenkins überwacht site-ffka und baut die Firmware auf Basis neuer Tags.
Die Build-Artefakte (FF-Firmware + kernel-module) werden auf dem Firmware-Webserver abgelegt, sodass der openwrt-Paketmanager opkg diese nutzen kann.
Eine Anpassung der Pfade des Autoupdaters findet NICHT automatisiert statt.
Verteilen der Firmware:
- Die bisherige Firmware-Struktur <webroot>/firmware/{experimental,beta,stable}<Datum>/modules/<
GLUON_RELEASE
>/ ist leider nicht haltbar, da in der gluon site.conf kein Pattern fürGLUON_BRANCH
existiert und dadurch die davon abhängige URL für das opkg-Repository nicht erstellt werden kann.
Somit liegen die Build-Artefakte benannt nachGLUON_RELEASE
zukünftig parallel zueinander, beispielsweise so:
/images/0.2.99-beta.1-20161130/{factory,sysupgrade,modules}/...
/images/0.2.90-stable.2-20161025/{factory,sysupgrade,modules}/...
/images/0.2.90-stable.1-20161024/{factory,sysupgrade,modules}/...
/images/0.2.107-experimental.1-20161027/{factory,sysupgrade,modules}/...
/images/rgr-0.2.97-beta.1-20161029/{factory,sysupgrade,modules}/...
/images/twi-0.2.99-beta.1-20161028/{factory,sysupgrade,modules}/...
/images/chris-0.2.97-kmod-usbnet.1-20160914/{factory,sysupgrade,modules}/...
/images/stable
->/images/0.2.90-stable.2-20161025
- Die Autoupdater-Pfade verweisen weiterhin auf
/images/experimental
,
/images/beta
bzw.
/images/stable
.
Diese Pfade stellen Symlinks auf die aktuellen Versionen dar und werden nach ausreichenden Firmware-Tests von Hand umgestellt. - Die Firmware-Version kann mit Benutzerkürzeln beginnen, was dazu führt, dass der Autoupdater diese inoffizielle Firmware nicht mit der nächsten Stable-Version überschreibt.
- Durch Anpassung der Autoupdater-Pfade ist es theoretisch möglich, die Firmware der persönlichen Branches ebenfalls über den Autoupdater zu aktualisieren.
Voraussetzungen:
-
Die Tags in diesem Repository müssen nach folgendem Schema erstellt werden und dürfen keine Leer- oder Sonderzeichen enthalten:
[Benutzerkürzel-]<Version>-<GLUON_BRANCH>-[Featuretext-].[Fortlaufender Zähler]
<Version>
darf nun kein v-Präfix mehr haben.Beispiele:
TAGNAME1=chris-0.2.90-beta-kmod-usbnet.0
TAGNAME2=0.2.90-stable.1
TAGNAME3=0.2.93-experimental.7
Aus dem Tag bestimmt der Buildbot die Variable
GLUON_RELEASE
, die in der Url für das opkg-Repository aber auch für den Autoupdater bei der Versionsprüfung verwendet wird, nach folgendem Schema:
GLUON_RELEASE=<TAGNAME>-<YYYYMMDD>
Der fortlaufende Zähler zeigt den Entwicklungsfortschritt, der durch den Buildbot hinzugefügte Datumsstempel das Alter der Firmware an. Die URL zum Webserver sieht dann wie folgt aus:
http://firmware.karlsruhe.freifunk.net/images/<GLUON_RELEASE>/{images,modules}/...
Ebenso wird GLUON_BRANCH automatisch anhand des Tagnamen ermittelt. Daher dürfen die Schlüsselwörter
experimental
,beta
bzw.stable
nur einzeln vorkommen. Desweiteren ist das alte Schlüsselwortexp
fürexperimental
nicht mehr gültig. -
Die Jenkins-Jobs dürfen keine Abhängigkeiten zu weiteren Scripten, Dateien, etc. in site-ffka oder gluon haben. Stattdessen sollen benötigte Funktionen in die Jobs integriert werden.
Transitionstabelle der Branches zu Tags:
- experimental -> 0.2.43-experimental.1
- beta -> 0.2.50-beta.1
- gluon-master -> 0.2.3-experimental.1
- gluon-2016.1 -> 0.2.70-experimental.1
- gluon-2016.1.4 -> 0.2.75-stable.1
- gluon-2016.1.6 -> 0.2.81-beta.1
- gluon-2016.2 -> 0.2.91-beta.1
- gluon-2016.2.1 -> 0.2.99-beta.1
Branch-Umbenennungen:
- l2tp-turbo-experimental -> herrbett-0.2.71-l2tp