Delen via


Cargo-pakketten publiceren met Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022

Met Azure Pipelines kunnen ontwikkelaars 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.

Vereisten

  • Een Azure DevOps-organisatie en een project. Maak een organisatie of een project als u dat nog niet hebt gedaan.

  • Een Azure Artifacts-feed. Een feed maken als u er nog geen hebt.

Verifiëren met een feed

  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 met feed en selecteer Vervolgens Cargo in het linkerdeelvenster.

  4. Kopieer het opgegeven fragment uit de sectie Project setup en voeg het toe aan uw config.toml bestand in uw bronopslagplaats. Het bestand ziet er als volgt uit:

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

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

  2. Selecteer Pijplijnenen selecteer vervolgens uw pijplijndefinitie.

  3. Selecteer bewerken en voeg vervolgens het volgende fragment toe aan uw YAML-pijplijn.

    - 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"
    

Pakketten publiceren op een feed

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

  2. Selecteer Pijplijnenen selecteer vervolgens uw pijplijndefinitie.

  3. Selecteer bewerken en voeg vervolgens het volgende fragment toe aan uw YAML-pijplijn.

    - powershell: |
       cargo publish --registry <FEED_NAME>        ## Replace the placeholder with your feed name
      env:
        SYSTEM_ACCESSTOKEN: $(system.accesstoken)
    

Opmerking

In het volgende voorbeeld ziet u hoe u Rustup installeert op de agent, de omgevingsvariabele PATH configureert, het project bouwt, verifieert met CargoAuthenticate en publiceert naar een 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

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

Een schermopname van de hello-world-cargo-krat die is gepubliceerd naar de feed.