Zum Inhalt springen

Plugin-Beispiele

Offizielle Plugins werden in der Organisation SemRels veröffentlicht.

github

ProviderPlugin für GitHub. Erstellt Releases, lädt Assets hoch und ruft die Commit-Historie über die GitHub-REST-API ab.

conventional-commits

CommitAnalyzerPlugin, das der Spezifikation Conventional Commits folgt, um den Versions-Bump zu bestimmen.

markdown-changelog

ChangelogGeneratorPlugin, das Release Notes als Markdown-Abschnitt CHANGELOG.md rendert.

go-mod-updater

FilesUpdaterPlugin, das die nächste Version über mit ldflags kompatible Versionsvariablen in Go-Quelldateien schreibt.

packager-nfpm

PackagerPlugin, das Linux-Pakete (deb, rpm, apk) mit nfpm baut.

publisher-oci

PublisherPlugin, das Artefakte mit oras push in OCI-Registries hochlädt.

publisher-generic-http

PublisherPlugin, das Artefakte zu benutzerdefinierten HTTP-Endpunkten hochlädt.

plugins:
- uses: @semrel/updater-go
phase: pre-tag
args:
file: internal/version/version.go
var_name: Version
- uses: @semrel/packager-nfpm
args:
config: packaging/nfpm.yaml
target: dist/packages
packagers: deb,rpm,apk
- uses: @semrel/publisher-oci
args:
ref: ghcr.io/semrels/myapp:{version}
artifacts: dist/packages/myapp_amd64.deb,dist/packages/myapp_amd64.rpm
plugins:
- uses: @semrel/updater-docker
phase: pre-tag
args:
file: Dockerfile
arg_name: VERSION
- uses: @semrel/publisher-generic-http
args:
url: https://uploads.example.com/releases/{version}/{artifact}
method: PUT
token: ${UPLOAD_TOKEN}
artifacts: dist/images/myapp-oci.tar
plugins:
- uses: @semrel/updater-helm
phase: pre-tag
args:
file: charts/myapp/Chart.yaml
update_app_version: "true"
- uses: @semrel/publisher-oci
args:
ref: ghcr.io/semrels/charts/myapp:{version}
artifacts: dist/charts/myapp-{version}.tgz

Nach der Anmeldung mit GitHub können Community-Plugins über die semrel registry zur Prüfung durch Maintainer eingereicht werden. Wenn dein Plugin dort gelistet werden soll, reiche es über die Registry ein oder öffne ein Issue oder einen PR im Haupt-Repository.