Freigeben über


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

Authentifizierung mit einem Feed

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.

  2. Wählen Sie Artefakte und dann Ihren Feed aus.

  3. Wählen Sie die Option Mit Feed verbinden und wählen Sie dann Cargo im linken Bereich aus.

  4. 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>"
      
  5. Erstellen Sie ein persönliches Zugriffstoken mit Verpackung>Lese- und Schreibbereichen, um sich bei Ihrem Feed zu authentifizieren.

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.

  2. Wählen Sie Pipelines und dann Ihre Pipelinedefinition aus.

  3. 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

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.

  2. Wählen Sie Pipelines und dann Ihre Pipelinedefinition aus.

  3. 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:

Screenshot der im Feed veröffentlichten Kiste