2017-12-31 36 views
1

Ich versuche, einen Weg, um herauszufinden, zu bauen Plaketten auf Artikel in GitJenkins Version beim Aufbau zu erzeugen, mit

Meine Gedanken das Tagging haben Jenkins waren zu schaffen zu machen, wie unten durch den Artikel gesehen.

Laut diesem Artikel: http://www.nailedtothex.org/roller/kyle/entry/configuring-automatic-push-by-successfully

Mein Verständnis ist, dass die Versionsnummern sind in der folgenden Art und Weise erzeugt werden:

(Major version).(Minor version).(Revision number).(Build number) 

1.2.3 (11BCF) <- Build number, should correspond with a revision in source control 
^^^ 
| | | 
| | +--- Minor bugs, spelling mistakes, etc. 
| +----- Minor features, major bug fixes, etc. 
+------- Major version, UX changes, file format changes, etc. 

nach dieser Nachricht: https://softwareengineering.stackexchange.com/questions/3199/what-version-naming-convention-do-you-use

I haben 4 Ebenen für das Projekt, PRODUKTION, TEST, KONSOLIDIERUNG, ENTWICKLUNG.

Die Releases aussehen

PRODUCTION (generate deploy build only if major/minor/revision number changes) 
    ^  (send to STABLE repository) 
    | 
    TEST  (generate deploy build only if major/minor/revision number changes) 
    ^
    | 
CONSOLIDATION (generate all of the time) 
    ^
    | 
DEVELOPMENT (generate all of the time) 

Wie kann ich den $ BUILD_NUMBER beheben, so dass es ($ BUILD_NUMBER) erzeugt wird, nach: (Major Version) (Minor Version) (Revisionsnummer)... (Build-Nummer)

Was kann ich an einen Jenkins Job passieren (bei der Konfiguration), so dass es Veränderungen in der (Major-Version) erkennt. (Minor-Version). (Revisionsnummer)

gibt es eine bessere Möglichkeit, dies zu tun Stift?

TIA

+0

BUILD_NUMBER ist Prozess Teil von Jenkins bauen, und wurde automatisch generiert, wenn der Job bekam Ich denke, Sie haben sich auf die Jenkins-Pipeline zu mehr Kontrollfluss-Ding wie SCM-tagging oder Versionsnummeränderung bezogen. – chenrui

+0

nicht sicher über welche Sprache verwenden Sie, aber jedes Build-Tool kann auch auf die Versionsnummer Management-Flow erleichtern. – chenrui

Antwort

1

Sie nicht BUILD_NUMBER ändern können, gelang es der Reihe nach von Jenkins.

Sie können jedoch sicherstellen, dass einer Ihrer Jenkins Job-Build-Schritte ein Tag erzeugt (folgen Sie dem semver convention), und kompilieren Sie dann Ihr Projekt ein letztes Mal mit einer Eigenschaftsdatei, die mit diesen Versionsinformationen generiert wird.

Siehe "Applying the existing tag on a new commit in Git".

Dies verwendet dasMaven-Plugin.
Es ermöglicht Ihrem Projekt, zur Laufzeit auf diese generierte Eigenschaft (Schlüssel/Wert) -Datei verweisen, wo Sie X.Y.Z aber auch die Git SHA1 finden können.
Das wird Plugin git describe für Sie ausführen:

Das Format eines beschreiben Ergebnis ist wie folgt definiert:

v1.0-2-g2414721-DEV 
^ ^^  ^
| | |  \-- if a dirtyMarker was given, it will appear here if the repository is in "dirty" state 
| | \---------- the "g" prefixed commit id. The prefix is compatible with what git-describe would return - weird, but true. 
| \------------- the number of commits away from the found tag. So "2414721" is 2 commits ahead of "v1.0", in this example. 
\----------------- the "nearest" tag, to the mentioned commit. 
+0

danke für die Antwort. Ich werde das verwenden, wenn ich mit Java und Maven arbeite :-) Ab sofort arbeite ich mit Python und DJango. Code aus Python/Django wurde in das Git-Repository verschoben. Der Python/DJango-Code wird unter Jenkins ausgecheckt, um ein Docker-Bild zu erstellen.Ich wollte eine Release-Version erstellen, damit sie 1) auf ein Docker-Tag für das Docker-Image angewendet wird und 2) das gleiche Tag auf das Git-Repository (Python/DJango) anwendet, das beim Erstellen des Docker-Images beteiligt war. Wird das Maven Plug-in auch in diesem Fall funktionieren? Nochmals vielen Dank für die Antwort! –

+0

@CaseyHarrils Sicher wäre es, dass git describe verwendet werden kann, um ein Tag zu erzeugen, das sowohl von Docker als auch von Git verwendet wird. Wenn Sie maven nicht verwenden, können Sie trotzdem git describe aufrufen. – VonC

+0

danke für die Information noch einmal. Werde es ausprobieren und mit den Ergebnissen TIA aktualisieren –