Wie erhöhen Sie die Versionsnummer mit Travis CI?
Dem Projekt, an dem ich arbeite, ist ein jQuery-plugin. Ich habe es geschafft, Travis CI zum bauen einer test-Projekt mit Gulp/NodeJS erfolgreich. Jetzt bin ich versucht, herauszufinden, welche workflow-verwenden, um Stoß die Versionsnummer.
In TeamCity und MyGet es gibt eine Einstellung in der CI-server zum bilden einer Versionsnummer, Muster, auto-Schritten auf jedem build, die verwendet werden können, durch das build-Skript für update-Versionen im deployment-Dateien und benennen Sie das Git-repo. Allerdings in der kostenlosen version von Travis CI, scheint es nicht zu sein, eine option für die Versionierung überhaupt.
Habe ich gelesen, mehrere Artikel über die kontinuierliche Bereitstellung mit Travis CI, hier, hier, und hier, aber keiner von Ihnen befassen sich mit dem Thema Versionierung. Offensichtlich ist die version geändert werden muss, der für die Freigabe. So was vermisse ich hier?
Ein weiteres problem habe ich festgestellt, wenn man durch die Dokumentation ist, dass es erwähnt, dass Travis CI ist nicht in der Lage zu aktualisieren, das GitHub-repository. Nicht, dass im Grunde bedeutet, es wird nicht in der Lage, erstellen Sie ein Git-tag?
Wenn es keine Möglichkeit gibt auf die version von Travis CI, was ist dann der typische workflow für die Freigabe für ein plugin? Ist die Versionierung immer manuell gemacht? Wenn ja, wie könnte es sein "continuous deployment"?
- Haben Sie eine Lösung zu finden, am Ende? Ich bin auf der Suche zu implementieren, die gleichen, die automatische Erhöhung der Versionsnummer auf die Bereitstellung.
- Ich landete nur halten Sie es einfach und gehen mit MyGet. Ich war nicht in der Lage zu aktivieren TravisCI, weil ich bin nicht der Besitzer des repo und der Besitzer war es nicht. Für die version die Beule, die ich verwendet, gulp-bump. Hier ist mein Gulp-Skript, dass die updates der version. Beachten Sie, dass die gulp-bump unterstützt eine manuelle bump-workflow sowie eine automatisierte, aber nur unterstützt eine Versionierung .json-Dateien. Aber Sie können immer mit regexes zu stoßen, etwas anderes (siehe mein script).
- "Ein weiteres problem habe ich festgestellt, wenn man durch die Dokumentation ist, dass es erwähnt, dass Travis CI ist nicht in der Lage zu aktualisieren, das GitHub-repository" nun können Sie innerhalb der build manuell, aber seit der Aktualisierung einer Datei bedeutet eine neue Begehen, werden Sie am Ende mit einem neuen build
- Mein Punkt ist, dass es keine Möglichkeit für den CI-server-zu-tag der build mit der Versionsnummer, aber in diesem speziellen Fall, ich landete Skripte, die update-mehrere Quell-Dateien, synchronisieren Sie die Versionsnummer in das Projekt/Dokumentation.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bevor es beginnt mit der Ausführung der Anweisungen in Ihrem
.travis.yml
Datei, Travis eine Reihe von Umgebungsvariablen (in der VM, die Gebäude in Ihrem Projekt) mit verschiedenen bits von Informationen über Ihren Aufbau, wie, was-Filiale gebaut wird und so weiter.Du wahrscheinlich einen von diesen wollen:
TRAVIS_BUILD_NUMBER
: Die Nummer der aktuellen build (zum Beispiel "4").TRAVIS_JOB_NUMBER
: Die Nummer des aktuellen Jobs (z.B. "4.1").Aber es wird sehr schwierig sein, zu tun alles sinnvoll, wenn Sie nicht die Kontrolle über das repository, da musst du hochladen
.travis.yml
- Datei in das Stammverzeichnis von Ihrem source-code-Ordner, ansonsten Travis nicht wissen, was zu tun ist.Wenn man bedenkt, dass jeder PR muss Ende bis zu Ihren Endkunden, ohne zu denken, die Auswirkungen dieser änderungen, dann Ihre version zahlen haben keine Bedeutung.
Sie nicht Ihre Benutzer eine Möglichkeit zu wissen, ob es eine größere änderung ist, dass die Kompatibilität oder ein bug-fix. Sie erlauben nicht, ihn zu bekommen, aktualisieren, ohne sich Gedanken über die Abwärtskompatibilität.
Derzeit ist die commit-id ist Ihre Versionsnummer.
Wenn Sie möchten, geben Bedeutung, um Ihre version zahlen, dann müssen Sie denken Sie an die Auswirkungen, die Ihre pull-requests auf dem hochschulpreis (http://semver.org/). Wählen Sie eine Versionsnummer für einen bestimmten PR oder eine Gruppe von PR.
Also im Grunde, da Sie zu "denken" von einer bestimmten Versionsnummer für eine bestimmte version, die Sie bereitstellen möchten, Sie können nicht diesen Vorgang automatisieren.
Veröffentlichung/tag der Schöpfung ist der Weg zu gehen : )
Verwenden stieß für die Freigabe Versionierung. Wenn Sie zufrieden sind mit den Veränderungen im master, ausführen:
Nachdem Sie drücken Sie die Veränderungen, entweder direkt oder über einen release PR, können Sie die Präsenz des neuen tags in Travis CI und veröffentlichen Sie das Paket an die Registrierung automatisch.
Können Sie dies erreichen, indem Sie die Einrichtung ein Skript beinhalten, das erstellen einer ~/.netrc-Datei, um Zugriff auf das repository. In dieser Datei können Sie angeben, so etwas wie:
Und anstatt in Ihre Anmeldeinformationen ein, die Sie übergeben können, ein github-access-token. Sie können die
travis encrypt
um Sie zu registrieren in der .travis.yml-Datei, und exportieren Sie die Variablen für Ihr Skript zu verwenden. Von dort aus in Ihr Skript können Sie die Ausgabe regelmäßige git-Befehle wie: