Veröffentlichen von Cargo-Paketen mit Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022
Azure Pipelines ermöglicht es Entwicklern, Cargo-Pakete in Azure Artifacts-Feeds und öffentliche Registries wie Crates.io zu veröffentlichen. In diesem Artikel erfahren Sie, wie Sie Ihre Cargo-Pakete in einem Azure Artifacts-Feed veröffentlichen können, indem Sie sowohl YAML- als auch klassische Pipelines verwenden.
Voraussetzungen
Eine Azure DevOps-Organisation und ein Projekt. Erstellen Sie ein organization oder ein Projekt, falls noch nicht geschehen.
Ein Azure Artifacts-Feed. Erstellen Sie einen Feed, wenn Sie noch keines haben.
Authentifizierung mit einem Feed
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte und dann Ihren Feed aus.
Wählen Sie die Option Mit Feed verbinden und wählen Sie dann Cargo im linken Bereich aus.
Kopieren Sie das bereitgestellte Snippet aus der Datei Einrichtung des Projekts Abschnitt und fügen Sie ihn zu Ihrem config.toml Datei in Ihrem Quellcode-Repository. Die Datei sollte wie folgt aussehen:
Projektbezogener Feed:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Organisationsbezogener Feed:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Erstellen Sie ein persönliches Zugriffstoken mit Verpackung>Lese- und Schreibbereichen, um sich bei Ihrem Feed zu authentifizieren.
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Pipelines und dann Ihre Pipelinedefinition aus.
Wählen Sie Bearbeiten aus, und fügen Sie dann der YAML-Pipeline den folgenden Codeausschnitt hinzu.
- task: CargoAuthenticate@0 displayName: 'Cargo Authenticate' inputs: configFile: '.cargo/config.toml' ## Path to the config.toml file that specifies the registries you want to work with. Select the file, not the folder e.g. "/.cargo/config.toml"
Veröffentlichen von Kisten in einem Feed
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Pipelines und dann Ihre Pipelinedefinition aus.
Wählen Sie Bearbeiten aus, und fügen Sie dann der YAML-Pipeline den folgenden Codeausschnitt hinzu.
- powershell: | cargo publish --registry <FEED_NAME> ## Replace the placeholder with your feed name env: SYSTEM_ACCESSTOKEN: $(system.accesstoken)
Beispiel
Das folgende Beispiel zeigt, wie Sie Rustup auf dem Agent installieren, die PATH-Umgebungsvariable konfigurieren, das Projekt erstellen, sich mit CargoAuthenticate authentifizieren und in einem Azure Artifacts-Feed veröffentlichen:
trigger:
- main
pool:
vmImage: windows-latest
steps:
- powershell: |
Invoke-WebRequest -Uri https://sh.rustup.rs -OutFile rustup-init.sh
bash .\rustup-init.sh -y
echo "##vso[task.prependpath]$env:USERPROFILE\.cargo\bin"
displayName: Install
- task: CargoAuthenticate@0
displayName: 'cargo Authenticate'
inputs:
configFile: '.cargo/config.toml'
- script: |
cargo build --all
displayName: Build
- powershell: |
cargo publish --registry CargoInternalFeed
displayName: Publish
Sobald Ihr Pipeline-Lauf abgeschlossen ist, sollte Ihre Kiste in Ihrem Feed verfügbar sein, wie unten dargestellt: