Plugin: publisher-crates
Veröffentlicht Rust-Crates auf crates.io durch Aufruf von cargo publish, nachdem semrel die neue Release-Version ermittelt und geschrieben hat. Unterstützt sowohl einzelne Crates als auch geordnete Cargo-Workspace-Member.
Installation
Abschnitt betitelt „Installation“Binärdatei
Abschnitt betitelt „Binärdatei“semrel plugin install @semrel/publisher-cratessemrel plugin install lädt die Binärdatei nach .semrel/plugins/ herunter und aktualisiert .semrel.lock. Committe .semrel.lock, um die Version für dein Team festzuschreiben.
Vorgefertigte, signierte Multi-Plattform-Images (linux/amd64, linux/arm64) werden bei jedem Release veröffentlicht:
docker pull ghcr.io/semrels/publisher-crates:latestÜberprüfe die Image-Signatur mit cosign:
cosign verify ghcr.io/semrels/publisher-crates:latest \ --certificate-identity-regexp 'https://github.com/SemRels/publisher-crates/.github/workflows/release.yml.*' \ --certificate-oidc-issuer https://token.actions.githubusercontent.comKonfiguration
Abschnitt betitelt „Konfiguration“version: 1plugins: - uses: @semrel/updater-cargo phase: pre-tag args: file: Cargo.toml
- uses: @semrel/publisher-crates phase: release args: cargo_registry_token: '${env.CARGO_REGISTRY_TOKEN}' cargo_workspace_member: "crate-core,crate-cli" cargo_manifest_path: Cargo.tomlUmgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“| Name | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
SEMREL_PLUGIN_CARGO_REGISTRY_TOKEN | ja (außer Dry-Run) | — | crates.io API-Token, wird als CARGO_REGISTRY_TOKEN an Cargo übergeben. |
SEMREL_PLUGIN_CARGO_WORKSPACE_MEMBER | nein | Standardpaket | Kommagetrennte Workspace-Member, die in der angegebenen Reihenfolge per cargo publish --package <name> veröffentlicht werden. |
SEMREL_PLUGIN_CARGO_PACKAGE | nein | — | Alias für SEMREL_PLUGIN_CARGO_WORKSPACE_MEMBER. |
SEMREL_PLUGIN_CARGO_MANIFEST_PATH | nein | Cargo.toml | Pfad zum Manifest (cargo publish --manifest-path <path>). |
Release-Kontextvariablen
Abschnitt betitelt „Release-Kontextvariablen“SEMREL_VERSIONSEMREL_NEXT_VERSIONSEMREL_DRY_RUN
Verhalten
Abschnitt betitelt „Verhalten“- Setzt
cargoim$PATHvoraus. - Veröffentlicht Workspace-Member in der definierten Reihenfolge und bricht beim ersten Fehler ab.
- Im Dry-Run-Modus (
SEMREL_DRY_RUN=true) wirdcargo publish --dry-runausgeführt, um das Paketieren ohne Upload zu prüfen.