Einführung
Nachdem du eine Aktion erstellt hast, möchtest du weiterhin neue Features veröffentlichen, während du mit Communitybeiträgen arbeitest. In diesem Tutorial wird ein Beispielprozess beschrieben, den du zum Freigeben und Verwalten von Aktionen in Open Source befolgen kannst. Beispiel:
- Nutzen von GitHub Actions für Continuous Integration, Abhängigkeitsupdates, Releaseverwaltung und Aufgabenautomatisierung
- Schaffen von Vertrauen durch automatisierte Tests und Buildbadges
- Angeben der Einsatzmöglichkeiten der Aktion, idealerweise als Teil eines breiteren Workflows
- Signalisieren der gewünschten Art von Communitybeiträgen (Beispiele: Issues, Pull Requests oder Sicherheitsrisikoberichte)
Ein Anwendungsbeispiel für diesen Prozess findest du unter actions/javascript-action.
Entwickeln und Freigeben von Aktionen
In diesem Abschnitt diskutieren wir einen Beispielprozess zum Entwickeln und Freigeben von Aktionen und zeigen, wie GitHub Actions zum Automatisieren des Prozesses verwendet wird.
Informationen zu JavaScript-Aktionen
JavaScript-Aktionen sind Node.js-Repositorys mit Metadaten. Im Vergleich zu herkömmlichen Node.js-Projekten weisen JavaScript-Aktionen jedoch zusätzliche Eigenschaften auf:
-
Abhängige Pakete werden zusammen mit dem Code committet, in der Regel in einem kompilierten und minimierten Format. Dies bedeutet, dass automatisierte Builds und sichere Communitybeiträge wichtig sind.
-
Versionen mit Tags können direkt im GitHub Marketplace veröffentlicht und von Workflows in GitHub verwendet werden.
-
Viele Aktionen nutzen GitHub-APIs und APIs von Drittanbietern, daher empfehlen wir gründliche End-to-End-Tests.
Einrichten von GitHub Actions-Workflows
Um den Entwicklerprozess im nächsten Abschnitt zu unterstützen, füge deinem Repository zwei GitHub Actions-Workflows hinzu:
- Füge einen Workflow hinzu, der ausgelöst wird, wenn ein Commit an einen Featurebranch oder an
main
gepusht oder wenn ein Pull Request erstellt wird. Konfiguriere den Workflow, um deine Komponenten- und Integrationstests auszuführen. Sieh dir beispielsweise diesen Workflow an. - Füge einen Workflow hinzu, der ausgelöst wird, wenn ein Release veröffentlicht oder bearbeitet wird. Konfiguriere den Workflow, um sicherzustellen, dass semantische Tags vorhanden sind. Du kannst eine Aktion wie JasonEtco/build-and-tag-action verwenden, um die JavaScript- und Metadatendatei zu kompilieren und als Paket zu erstellen und die Pushübertragung semantischer Haupt-, Neben- und Patchtags zu erzwingen. Weitere Informationen zu semantischen Tags findest du unter Informationen zur semantischen Versionierung.
Beispielentwicklerprozess
Nachfolgend findest du einen Beispielprozess, mit dem du Tests automatisch ausführen, ein Release erstellen, in GitHub Marketplace veröffentlichen und deine Aktion veröffentlichen kannst.
-
Führe Featurearbeit in Branches über einen GitHub-Flow aus. Weitere Informationen finden Sie unter GitHub-Flow.
- Wenn ein Commit an den Featurebranch gepusht wird, führt dein Testworkflow die Tests automatisch aus.
-
Erstelle Pull Requests an den
main
-Branch, um Diskussionen und Reviews zu initiieren. Bei Bereitschaft wird ein Mergevorgang durchgeführt.-
Wenn ein Pull Request aus einem Branch oder einem Fork geöffnet wird, führt der Testworkflow die Tests erneut aus, dieses Mal mit dem Mergecommit.
-
Hinweis: Aus Sicherheitsgründen verfügen Workflows, die über
pull_request
aus Forks ausgelöst werden, über eingeschränkteGITHUB_TOKEN
-Berechtigungen und können nicht auf Geheimnisse zugreifen. Wenn deine Tests oder andere Workflows, die nach einem Pull Request ausgelöst werden, Zugriff auf Geheimnisse erfordern, solltest du ein anderes Ereignis wie beispielsweise einen manuellen Trigger oder einpull_request_target
verwenden. Weitere Informationen finden Sie unter Ereignisse zum Auslösen von Workflows.
-
-
Erstelle eine Version mit semantischen Tags. Du kannst auch mit einem einfachen Kontrollkästchen auf dem GitHub Marketplace veröffentlichen. Weitere Informationen findest du unter Veröffentlichungen in einem Repository verwalten und unter Aktionen auf dem GitHub-Marktplatz veröffentlichen.
-
Wenn ein Release veröffentlicht oder bearbeitet wird, übernimmt dein Releaseworkflow automatisch die Kompilierung und Anpassung von Tags.
-
Es wird empfohlen, Releases mithilfe von semantischen Versionstags (z. B.
v1.1.3
) zu erstellen und Tags von Hauptversionen (v1
) und Nebenversionen (v1.1
) mit dem neuesten entsprechenden Commit auf dem neuesten Stand zu halten. Weitere Informationen findest du unter Informationen zu benutzerdefinierten Aktionen und Informationen zur semantischen Versionierung.
-
Ergebnisse
Im Gegensatz zu einigen anderen Strategien zur automatisierten Releaseverwaltung committet dieser Prozess absichtlich keine Abhängigkeiten an den main
-Branch, sondern nur an die mit Tags versehenen Releasecommits. Dadurch werden Benutzer deiner Aktion dazu veranlasst, auf benannte Tags oder sha
s zu verweisen, und du stellst die Sicherheit der Pull Requests von Drittanbietern sicher, indem du den Build während eines Release selbst erstellst.
Mit semantischen Releases können die Benutzer deiner Aktionen ihre Workflows an eine Version anheften und wissen, dass sie je nach Komfortniveau weiterhin die neuesten stabilen Features ohne Breaking Changes erhalten.
Arbeiten mit der Community
GitHub bietet Tools und Anleitungen, die dich bei der Arbeit mit der Open-Source-Community unterstützen. Die folgenden Tools werden für eine solide bidirektionale Kommunikation empfohlen. Indem du der Community die folgenden Signale bereitstellst, ermutigst du andere, deine Aktion zu verwenden, zu ändern und dazu beizutragen:
- Führe eine
README
-Datei mit zahlreichen Verwendungsbeispielen und Anleitungen. Weitere Informationen finden Sie unter Informationen zu README-Dateien. - Füge ein Workflowstatusbadge in deine
README
-Datei ein. Weitere Informationen finden Sie unter Hinzufügen eines Badges für den Workflowstatus. Besuche auch shields.io, um Informationen zu weiteren Badges zu erhalten, die hinzugefügt werden können. - Füge Community-Unterstützungsdateien wie
CODE_OF_CONDUCT
,CONTRIBUTING
undSECURITY
hinzu. Weitere Informationen findest du unter Erstellen einer Standard-Community-Health-File. - Halte Issues auf dem neuesten Stand, indem du Aktionen wie actions/stale. verwendest.
- Verwende die Sicherheitsfeatures von GitHub, um dich über Sicherheitsrisiken und deren Behebung auszutauschen. Weitere Informationen findest du unter Verwenden der Sicherheitsfeatures von GitHub zum Sichern Ihrer Verwendung von GitHub-Aktionen.
Weiterführende Themen
Beispiele für die Verwendung ähnlicher Muster: