suchen
HeimWeb-FrontendCSS-TutorialSo automatisieren Sie Projektversioning und Veröffentlichungen mit kontinuierlicher Bereitstellung

So automatisieren Sie Projektversioning und Veröffentlichungen mit kontinuierlicher Bereitstellung

Durch die Verwendung semantischer Versionsregelung kann die Wartung und Kommunikation von Softwareänderungen erleichtert werden. Manuelle Vorgänge sind jedoch umständlich. Selbst wenn Sie PR manuell verschmelzen, die Einreichung markieren und die Version verschieben, müssen Sie eine Release -Beschreibung schreiben. Es gibt viele Schritte, hohe Wiederholung, zeitaufwändig und arbeitsintensiv.

In diesem Artikel wird erläutert, wie effizientere Prozesse erzielt und Release -Prozesse vollständig automatisiert werden können, indem die semantische Versionierung in den kontinuierlichen Bereitstellungsprozess integriert wird.

Semantische Versionskontrolle

Eine semantische Version ist eine Versionsnummer, die aus drei Zahlen besteht, wie z. B. 1.4.10. Jede Zahl hat eine bestimmte Bedeutung:

Hauptversionsänderungen (Major)

Die erste Zahl zeigt eine Hauptversionsänderung an, was bedeutet, dass sich eine zerstörerische Veränderung vorliegt.

Minor -Versionsänderungen (Moll)

Die zweite Zahl zeigt eine geringfügige Versionsänderung an, was bedeutet, dass neue Funktionen hinzugefügt wurden.

Patch -Version Änderung

Die dritte Nummer gibt eine gepatchte Versionsänderung an, was bedeutet, dass ein Fehler behoben wird.

Die semantische Version kann besser verstanden werden als: destruktive Veränderungen, funktionale Änderungen und Fehlerbehebungen. Diese Beschreibung ist präziser und vermeidet Mehrdeutigkeit.

Informationsformat einreichen

Um sicherzustellen, dass die semantische Versionsnummer korrekt inkrementiert ist und die richtige Version veröffentlicht wird, ist ein standardisiertes Format zur Einreichungsinformation erforderlich. Ein standardisiertes Format zur Einreichungsinformation hilft zu bestimmen, wann die Zahl in Erhöhen und einfacher Veröffentlichungsanweisungen erstellt wird. Hier wird Angular verwendet, um Informationskonventionen einzureichen, und es kann natürlich auch nach Bedarf geändert werden.

Das Format lautet wie folgt:

<code></code>

Jede Einreichung enthält Titel , Körper und Fußnote .

Titel einreichen

Der Titel ist ein Muss, er verfügt über ein spezielles Format, einschließlich Typ , optionalem Umfang und Thema .

Der Titeltyp ist ein erforderliches Feld, um die Auswirkungen der Einreichung auf die nächste Version zu veranschaulichen. Es muss einer der folgenden Typen sein:

  • Feat : Neue Funktionen
  • Fix : Bug Fix
  • Dokumente : Dokumentwechsel
  • Stil : Änderungen, die die Bedeutung des Codes nicht beeinflussen (z. B. Räume, Formate, fehlende Semikolons usw.)
  • Refactor : Code Refactoring, weder Behebung von Fehler noch Funktionen hinzufügen
  • Perf : Leistungsverbesserungen
  • Test : Fügen Sie Test hinzu oder korrigieren Sie den Test
  • Aufgabe : Änderungen zum Erstellen von Prozessen oder Hilfstools und -Bibliotheken, z. B. Dokumente generieren

Ein Zielfernrohr ist eine Gruppierungseigenschaft, die Subsysteme angibt, die sich auf Subsysteme wie APIs, Anwendungs ​​-Dashboards oder Benutzerkonten usw. einreichen.

Das Titelthema sollte kurz die vorgenommenen Änderungen beschreiben. Die folgenden Regeln sind beim Schreiben eines Themas erforderlich:

  • Verwenden Sie imperative Sätze, vorhandene Zeitform (z. B. "verändert" anstelle von "verändert" oder "verändert").
  • Kleinbuchstaben des Anfangsbuchstabens.
  • Am Ende wird keine Periode (.) Hinzugefügt.
  • Vermeiden Sie Themenlängen von mehr als 80 Zeichen. Senden Sie die Leiche ein.

Wie das Titelthema sollte auch der Haupttext imperativen Sätzen anwesend werden. Es sollte die Motivation für die Veränderung enthalten und mit dem vorherigen Verhalten vergleichen.

Fußnoten einreichen

Die Fußnote sollte Informationen über die destruktiven Änderungen enthalten, und auch die Frage, die für diese Einreichung angegeben ist.

Destruktive Veränderungsinformationen sollten mit dem Brechen von Veränderungen beginnen: gefolgt von einem Raum oder zwei neuen Zeilen. Die verbleibenden Einreichungsinformationen finden Sie hier.

Erzwingen Sie das Format des Einreichungsinformates

In der Teamarbeit ist es immer eine Herausforderung, alles zu standardisieren, was jeder folgen muss. Um sicherzustellen, dass jeder die gleichen Einreichungskriterien verwendet, werden wir Komitee verwenden.

Commitizen ist ein Befehlszeilen -Tool, das den Prozess der Verwendung eines konsistenten Commit -Nachrichtenformats vereinfacht. Wenn Sie das Repository mit dem Komitee kompatibel machen, kann jeder im Team Git CZ ausführen und detaillierte Eingabeaufforderungen zum Ausfüllen der Einreichungsinformationen erhalten.

Generieren und veröffentlichen

Nachdem wir wissen, dass unsere Einsendungen konsistente Standards folgen, können wir damit beginnen, Veröffentlichungen und Freigabeboten zu generieren. Dazu verwenden wir ein Paket namens Semantic-Release. Dies ist ein gut gepflegtes Paket mit einer guten Unterstützung für eine Vielzahl von CI-Plattformen (Continuous Integration).

Semantische Freisetzung ist der Schlüssel zu unserer Reise, da alle für die Veröffentlichung erforderlichen Schritte durchgeführt werden, darunter:

  1. Bestätigen Sie die letzte Version, die Sie veröffentlicht haben
  2. Bestimmen Sie den Veröffentlichungstyp basierend auf den seit der letzten Veröffentlichung hinzugefügten Einsendungen
  3. Generieren Sie Veröffentlichungsanweisungen für Einsendungen, die seit der letzten Veröffentlichung hinzugefügt wurden
  4. Aktualisieren Sie die Datei package.json und erstellen Sie ein GIT -Tag, das der neu veröffentlichten Version entspricht
  5. Neue Version schieben

Jeder CI ist in Ordnung. In diesem Artikel verwenden wir Github-Aktionen, da ich die vorhandenen Funktionen der Plattform gerne verwenden möchte, bevor ich nach einer Lösung von Drittanbietern suche.

Es gibt viele Möglichkeiten, semantische Freisetzung zu installieren, aber wir werden semantische Release-CLI verwenden, da es Schritt-für-Schritt-Vorgänge bietet. Lassen Sie uns das NPX-Semantik-Release-Cli-Setup im Terminal ausführen und den interaktiven Zauberer ausfüllen.

Das Skript wird Folgendes ausführen:

  • Führen Sie den NPM -Adduser mit den bereitgestellten NPM -Informationen aus, um .npmrc zu generieren.
  • Erstellen Sie ein GitHub Personal Access Token.
  • Update package.json.

Sobald die CLI beendet ist, fügt sie package.json semantische Freisetzung hinzu, aber sie wird sie nicht tatsächlich installieren. Führen Sie die NPM -Installation aus, um es und andere Projektabhängigkeiten zu installieren.

Das einzige, was noch übrig ist, ist, CI durch GitHub -Aktionen zu konfigurieren. Wir müssen manuell einen Workflow hinzufügen, der semantische Freisetzung ausführt. Erstellen wir einen Publishing -Workflow in .github/Workflows/Release.yml.

 <code>name: Release on: push: branches: - main jobs: release: name: Release runs-on: ubuntu-18.04 steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v1 with: node-version: 12 - name: Install dependencies run: npm ci - name: Release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # If you need an NPM release, you can add the NPM_TOKEN # NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: npm run release</code>

Steffen Brewersdorff hat CI mit Github -Aktionen hervorragend eingeführt, aber lassen Sie uns kurz überprüfen, was hier vor sich geht.

Dies wartet, bis ein Druck in den Hauptzweig auftritt, bevor die Pipeline ausgeführt wird. Sie können diese Einstellung ändern, wenn Sie mit einem, zwei oder allen Zweigen ausgeführt werden möchten.

 <code>on: push: branches: - main</code>

Anschließend wird das Repository gezogen und den Knoten installiert, sodass NPM zur Installation von Projektabhängigkeiten verwendet werden kann. Wenn dies etwas ist, das Sie bevorzugen, können Sie einen Testschritt hinzufügen.

 <code>- name: Checkout uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v1 with: node-version: 12 - name: Install dependencies run: npm ci # You can add a test step here # - name: Run Tests # run: npm test</code>

Lassen Sie schließlich die semantische Freisetzung alle magischen Operationen durchführen:

 <code>- name: Release run: npm run release</code>

Drücken Sie Änderungen und Ansichtsaktionen:

Jedes Mal, wenn ein bestimmter Zweig verpflichtet (oder zusammengeführt) wird, wird der Vorgang ausgeführt und mit einem Release -Hinweis veröffentlicht.

Poste eine Party!

Wir haben erfolgreich einen semantischen CI/CD -Workflow erstellt! Ist es nicht so schmerzhaft? Das Setup ist relativ einfach und es gibt keine Nachteile, wenn ein semantischer Veröffentlichungsworkflow vorhanden ist. Es erleichtert nur die Verfolgung von Änderungen.

Semantische Freisetzung Es gibt viele Plug-Ins, die eine fortgeschrittenere Automatisierung ermöglichen. Zum Beispiel gibt es sogar einen Slack -Release -Bot, der nach erfolgreicher Bereitstellung des Projekts im Projektkanal veröffentlicht werden kann. Sie müssen nicht zu Github gehen, um Updates zu finden!

Das obige ist der detaillierte Inhalt vonSo automatisieren Sie Projektversioning und Veröffentlichungen mit kontinuierlicher Bereitstellung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Scrollgetriebene Animationen in einem CSS-KarussellScrollgetriebene Animationen in einem CSS-KarussellMay 16, 2025 am 09:50 AM

Hey, ist keine ziemlich neue CSS -Funktion, die mit Scroll -Regionen funktioniert? Oh ja, das scrollgetriebene Animationen. Sollten wir das bedeuten, dass wir eine Animation auslösen können, während wir in einem CSS -Karussell durch die Gegenstände scrollen können?

CSS -Einbeziehung: Auswählen der richtigen Methode für Ihr ProjektCSS -Einbeziehung: Auswählen der richtigen Methode für Ihr ProjektMay 16, 2025 am 12:02 AM

TheBestMethodforincludingCSSDependsonProjectSizeandComplexität: 1) ForlargerProjects, UsexternalcssforbetterTainability undPerformance.2) ForsMallerProjects, InternalcsSSuStoVoidextrahttprequests.AldalwaysConsidaNanceSrahtTprequest.

Dies soll nicht passieren: Fehlerbehebung beim UnmöglichenDies soll nicht passieren: Fehlerbehebung beim UnmöglichenMay 15, 2025 am 10:32 AM

Wie es aussieht, eines dieser unmöglichen Probleme zu beheben, die sich als etwas ganz anderes herausstellen, an das Sie nie gedacht haben.

@Keyframes vs CSS Übergänge: Was ist der Unterschied?@Keyframes vs CSS Übergänge: Was ist der Unterschied?May 14, 2025 am 12:01 AM

@KeyFramesandcsStransitionSdifferinComplexity:@keyFramesAllowsfordetailedanimationsequenzen, whilecsStransitionShandleSmplestatechanges.USecsStransitionsForHovereffectSlikeButtonColorchanges sowie@keyframesforintricateanimationslikerotierungen.

Verwenden von Seiten CMS für statische Site Content ManagementVerwenden von Seiten CMS für statische Site Content ManagementMay 13, 2025 am 09:24 AM

Ich weiß, ich weiß: Es gibt eine Menge von Content -Management -Systemoptionen, und während ich mehrere getestet habe, war keiner wirklich derjenige, den Sie wirklich wissen? Seltsame Preismodelle, schwierige Anpassungen, einige werden sogar ein Ganzes &

Die ultimative Anleitung zum Verknüpfen von CSS -Dateien in HTMLDie ultimative Anleitung zum Verknüpfen von CSS -Dateien in HTMLMay 13, 2025 am 12:02 AM

Das Verknüpfen von CSS -Dateien mit HTML kann durch die Verwendung von Elementen in einem HTML erreicht werden. 1) Verwenden Sie Tags, um lokale CSS -Dateien zu verknüpfen. 2) Mehrere CSS -Dateien können durch Hinzufügen mehrerer Tags implementiert werden. 3) Externe CSS -Dateien verwenden absolute URL -Links wie z. 4) Stellen Sie die korrekte Verwendung von Dateipfaden und CSS -Dateiladeauftrag sicher und optimieren Sie die Leistung können mit CSS -Präprozessor zusammengeführt werden, um Dateien zu verschmelzen.

CSS Flexbox vs Grid: Eine umfassende ÜberprüfungCSS Flexbox vs Grid: Eine umfassende ÜberprüfungMay 12, 2025 am 12:01 AM

Die Auswahl von Flexbox oder Grid hängt von den Layoutanforderungen ab: 1) Flexbox ist für eindimensionale Layouts wie die Navigationsleiste geeignet. 2) Das Gitter eignet sich für zweidimensionale Layouts wie Zeitschriftenlayouts. Die beiden können im Projekt verwendet werden, um den Layout -Effekt zu verbessern.

So füge CSS -Dateien ein: Methoden und Best PracticesSo füge CSS -Dateien ein: Methoden und Best PracticesMay 11, 2025 am 12:02 AM

Der beste Weg, um CSS -Dateien einzubeziehen, besteht darin, Tags zu verwenden, um externe CSS -Dateien in den HTML -Teil einzuführen. 1. Verwenden Sie Tags, um externe CSS -Dateien einzuführen, wie z. 2. Für kleine Anpassungen können Inline -CSS verwendet werden, sollten jedoch mit Vorsicht verwendet werden. 3. Große Projekte können CSS -Präprozessoren wie SASS oder weniger verwenden, um andere CSS -Dateien über @import zu importieren. 4. Für die Leistung sollten CSS -Dateien zusammengeführt und CDN verwendet und mit Tools wie CSSNano komprimiert werden.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)