Share via


Cargo-pakketten publiceren met Azure Pipelines

Met Azure Pipelines kunnen ontwikkelaars hun Cargo-pakketten publiceren naar Azure Artifacts-feeds en openbare registers, zoals Crates.io. In dit artikel leert u hoe u uw Cargo-pakketten publiceert naar een Azure Artifacts-feed met behulp van zowel YAML- als klassieke pijplijnen.

In dit artikel wordt uitgelegd hoe u het volgende kunt doen:

  • Een Azure Artifacts-feed maken
  • Verifiëren met Azure Artifacts
  • Cargo-pakketten publiceren

Vereisten

Een feed maken

Azure Artifacts raadt aan om een speciale feed te gebruiken voor het verbruik van kratten uit crates.io en een afzonderlijke feed uitsluitend voor het publiceren van interne kratten. Als u al een feed hebt, kunt u doorgaan naar de volgende sectie.

  1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

  2. Selecteer Artefacten en selecteer vervolgens Feed maken.

  3. Geef een naam op voor uw feed, geef de zichtbaarheid op en kies vervolgens een bereik voor uw feed.

  4. Selecteer Maken wanneer u klaar bent.

    A screenshot showing how to create a cargo feed for internal packages.

Verifiëren met Azure Artifacts

  1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

  2. Selecteer Artefacten en selecteer vervolgens uw feed.

  3. Selecteer Verbinding maken om te voeden en selecteer vervolgens Cargo in het linkerdeelvenster.

  4. Volg de instructies in de sectie Project-installatie door het opgegeven fragment toe te voegen aan het bestand config.toml in uw bronopslagplaats:

    • Feed met projectbereik:

      [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>"
      
    • Feed met organisatiebereik:

      [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. Maak een persoonlijk toegangstoken met lees- en schrijfbereiken voor pakketten>om te verifiëren met uw feed.

  6. Gebruik de taak CargoAuthenticate om te verifiëren vanuit uw pijplijn:

    1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

    2. Selecteer Pijplijnen, selecteer uw pijplijndefinitie en selecteer vervolgens Bewerken.

    3. Selecteer het + teken om een nieuwe taak toe te voegen. Zoek de taak Cargo Authenticate en selecteer Vervolgens Toevoegen om deze toe te voegen aan uw pijplijn.

    4. Selecteer het beletseltekenpictogram om een nieuw venster te openen met de inhoud van de opslagplaats en kies vervolgens het bestand config.toml .

      A screenshot showing the Cargo authenticate task in a classic pipeline.

Kratten publiceren naar uw feed

  1. Selecteer pijplijnen in uw Azure DevOps-project, selecteer uw pijplijndefinitie en selecteer vervolgens Bewerken.

  2. Selecteer de + aanmelding bij uw agenttaak om een nieuwe taak toe te voegen. Zoek de PowerShell-taak via de zoekfunctie en selecteer Vervolgens Toevoegen om deze toe te voegen aan uw pijplijn.

  3. Geef uw taak een naam, bijvoorbeeld Publiceren en selecteer vervolgens Inline als het type. Plak de inline-opdracht voor publiceren, waarbij u de tijdelijke aanduiding vervangt door de naam van uw feed:

    cargo publish --registry <FEED_NAME>
    

A screenshot showing how to publish crates to and Azure Artifacts feed using a classic pipeline.

Opmerking

In dit voorbeeld installeren we rustup op de agent, stellen we de omgevingsvariabele PATH in, bouwen we ons project, verifiëren met CargoAuthenticate en publiceren we ten slotte onze krat naar onze Azure Artifacts-feed:

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

Nadat de pijplijnuitvoering is voltooid, moet uw krat beschikbaar zijn in uw feed, zoals hieronder wordt weergegeven:

A screenshot showing the hello-world-cargo crate published to the feed.