Hallo,
ich möchte unser git Repository in dem die Konfiguration für unsere Firmware liegt etwas verbessern.
Meine Ziele sind:
Jeder soll einfach unsere veröffentlichte Firmware exakt nachbauen können
Ein Buildserver soll nightly versionen erstellen können
Ich möchte Strickt nach dem Schema Entwicklung → Test → Release vorgehen und dabei zwischen den Phasen keinen Code händisch ändern müssen.
Für die ersten beiden Punkte wäre es wichtig zu hinterlegen auf welcher Gluon Version/Commit/Branch das ganze basiert. hat dazu jemand eine Idee? Bisher muss man das manuell angeben.
Für den 3. Punkt müsste man vermutlich den Namen der Branch irgendwie automatisch beim bauen übergeben.
Damit liegen eigentlich alle Daten vor, exakt eine Version nachzubauen bzw. den Build nachzuvollziehen im (privaten) Jenkins. (Probiert habe ich einen Nachbau aber auch noch nicht ;))
Initialer Build (zweistufig: ein »PoC«-Lauf baut single-threaded nur 841v9 bis v11 und x86-kvm, um Fehler zu finden; manuell zu startender 2. Job baut dann mit -j8 alles) …
Die Jobs, ein (effektiv: das zuletzt gebaute) Image über rawhide (frisch gebacken, blutig, nicht abgehangen oder auch nur eines Blickes gewürdigt) nach experimental nach testing nach stable zu hieven, sind dann relativ einfach:
#
# << make sure the manifest is signed properly! >>
#
mv images/sysupgrade/testing.manifest-${RELEASE} images/sysupgrade/testing.manifest
rsync -av --omit-dir-times --progress images/* /nfs/firmware/testing/
Was so nicht geht: neuen Build haben und älteren Build promoten. Kann man aus dem rawhide-Verzeichnis per ${RELEASE}-Pattern aber raussyncen; die Anzahl der Commiter ist aber hier so überschaubar, daß der Fall selten auftritt