Semantic-Release-Workflow automatisiert den gesamten Paketveröffentlichungs-Workflow, einschließlich: Ermittlung der nächsten Versionsnummer, Generieren der Versionshinweise und Veröffentlichung des Pakets.
Dies beseitigt die unmittelbare Verbindung zwischen menschlichen Emotionen und Versionsnummern, wobei die semantische Versionsspezifikation streng folgt und die Auswirkungen von Änderungen an Verbraucher vermittelt.
Vertrauen Sie uns, dies wird Ihren Workflow zum Besseren ändern. - Egghead.io
Vollautomatisierte Version
Durchsetzen
Neue Funktionen und Korrekturen stehen den Benutzern sofort zur Verfügung
Benachrichtigen Sie die Betreuer und Benutzer über neue Veröffentlichungen
Verwenden Sie die formalisierte Commit -Nachrichtenkonvention, um Änderungen in der Codebasis zu dokumentieren
Veröffentlichen Sie auf verschiedenen Verteilungskanälen (z.
Integrieren Sie Ihren kontinuierlichen Integrations -Workflow
Vermeiden Sie potenzielle Fehler, die mit manuellen Veröffentlichungen verbunden sind
Unterstützen Sie alle Paketmanager und Sprachen über Plugins
Einfache und wiederverwendbare Konfiguration über gemeinsame Konfigurationen
Unterstützung für die Herkunft des NPM-Pakets, die durch unterzeichnete Bescheinigungen zu GitHub-Aktionen eine erhöhte Sicherheit der Versorgungskette fördert
Semantic-Freisetzung verwendet die Commit-Nachrichten, um die Auswirkungen von Änderungen der Verbraucher in der Codebasis zu bestimmen. Nach formalisierten Konventionen für Commit-Nachrichten bestimmt semantische Freisetzung automatisch die nächste semantische Versionsnummer, generiert einen Changelog und veröffentlicht die Version.
Standardmäßig verwendet Semantic-Release Angular Commit-Nachrichtenkonventionen. Das Commit-Message-Format kann mit den preset
oder config
der @semantischen Plugins von Semantic-Release/Commit-Analyzer und @Semantic-Release/Release-NOTES-Generator geändert werden.
Tools wie Commitizen oder Commitlint können verwendet werden, um Mitwirkenden zu unterstützen und gültige Festschreibungsnachrichten durchzusetzen.
In der folgenden Tabelle wird angezeigt, in welcher Komit-Nachricht Sie welchen Release-Typ erhalten, wenn semantic-release
ausgeführt wird (mithilfe der Standardkonfiguration):
Nachricht begehen | Release -Typ |
---|---|
fix(pencil): stop graphite breaking when too much pressure applied | Patch Fix Release |
feat(pencil): add 'graphiteWidth' option | Kleinere Feature -Version |
perf(pencil): remove graphiteWidth option BREAKING CHANGE: The graphiteWidth option has been removed. The default graphite width of 10mm is always used for performance reasons. | Hauptveröffentlichung (Beachten Sie, dass die BREAKING CHANGE: Token im Fußzeile des Commits sein muss) |
Die semantische Freisetzung soll nach jedem erfolgreichen Aufbau der Release-Zweig in der CI-Umgebung ausgeführt werden. Auf diese Weise ist kein Mensch direkt in den Freigabemittel beteiligt, und die Veröffentlichungen sind garantiert unromantisch und nicht sentimental.
Für jedes neue Komitee wurde zu einem der Release semantic-release
Zweige (zum Beispiel: master
, main
, next
beta
) mit git push
oder durch Zusammenführen einer Pull-Anfrage oder des Zusammenführens von einem anderen Zweig hinzu Befehl zur Veröffentlichung, wenn Codebasis -Änderungen seit der letzten Version vorliegen, die sich auf die Paketfunktionen auswirken.
Semantic-Release bietet verschiedene Möglichkeiten, das Timing, den Inhalt und das Publikum der veröffentlichten Veröffentlichungen zu kontrollieren. Siehe Beispiel -Workflows in den folgenden Rezepten:
Verwenden von Verteilungskanälen
Wartungsveröffentlichungen
Voraberlöser
Nach dem Ausführen der Tests führt der Befehl semantic-release
die folgenden Schritte aus:
Schritt | Beschreibung |
---|---|
Bedingungen überprüfen | Überprüfen Sie alle Bedingungen, um mit der Veröffentlichung fortzufahren. |
Holen Sie sich letzte Veröffentlichung | Erhalten Sie das Commit, das der letzten Version entspricht, indem Sie Git -Tags analysieren. |
Analysieren von Commits | Bestimmen Sie die Art der Freigabe basierend auf den seit der letzten Veröffentlichung hinzugefügten Commits. |
Release überprüfen | Überprüfen Sie die Release -Konformität. |
Notizen generieren | Generieren Sie Versionshinweise für die seit der letzten Veröffentlichung hinzugefügten Commits. |
Erstellen Sie Git -Tag | Erstellen Sie ein GIT -Tag, das der neuen Versionsversion entspricht. |
Vorbereiten | Bereiten Sie die Veröffentlichung vor. |
Veröffentlichen | Veröffentlichen Sie die Veröffentlichung. |
Benachrichtigen | Benachrichtigung über neue Veröffentlichungen oder Fehler. |
Um die semantische Freisetzung zu verwenden, benötigen Sie:
So hosten Sie Ihren Code in einem Git -Repository
Verwenden Sie einen kontinuierlichen Integrationsdienst, mit dem Sie Anmeldeinformationen sicher einrichten können
Eine GIT -CLI -Version, die unsere Versionsanforderung erfüllt, die in Ihrer kontinuierlichen Integrationsumgebung installiert ist
Eine Node.js -Version, die unsere Versionsanforderung erfüllt, die in Ihrer kontinuierlichen Integrationsumgebung installiert ist
Verwendung
Erste Schritte
Installation
CI -Konfiguration
Konfiguration
Plugins
Workflow -Konfiguration
Gemeinsame Konfigurationen
Sich erweitern
Plugins
Gemeinsamere Konfiguration
Rezepte
CI -Konfigurationen
Git hostete Dienste
Workflow veröffentlichen
Entwicklerleitfaden
JavaScript -API
Plugins -Entwicklung
Gemeinsame Konfigurationsentwicklung
Unterstützung
Ressourcen
Häufig gestellte Fragen
Fehlerbehebung
Anforderung der Knotenversion
Knotenunterstützungsrichtlinie
Github -Diskussionen
Stapelüberlauf
Lassen Sie die Leute wissen, dass Ihr Paket mit semantischer Freisetzung veröffentlicht wird und welche Verpflichtung zur Verpflichtung dieses Abzeichens in Ihr Readme aufgenommen wird.
[! [Semantische Release: Angular] (https://img.shields.io/badge/semantic-release-angular-e10079?logo=semantic-release)] (https://github.com/semantic-release /semantische Freisetzung)
![]() | ![]() | ![]() |
---|---|---|
Gregor Martynus | Pierre Vanduynslager | Matt Travi |
![]() | ![]() | ![]() | ![]() | ![]() |
---|---|---|---|---|
Stephan Bönnemann | Rolf Erik Lekang | Johannes Jörg Schmidt | Finn Pauls | Christoph Witzko |