Condividi tramite


Pubblicare pacchetti Cargo con Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022

Azure Pipelines consente agli sviluppatori di pubblicare pacchetti Cargo in feed di Azure Artifacts e registri pubblici, ad esempio Crates.io. Questo articolo illustra come pubblicare i pacchetti Cargo in un feed di Azure Artifacts usando pipeline YAML e classiche.

Prerequisiti

  • Un'organizzazione Di Azure DevOps e un progetto. Crea un'organizzazione o un progetto , se non l'hai già fatto.

  • Feed di Azure Artifacts. Creare un feed se non ne è già disponibile uno.

Eseguire l'autenticazione con un feed

  1. Accedere all'organizzazione di Azure DevOps e passare al progetto.

  2. Selezionare Artefatti e quindi selezionare il feed.

  3. Selezionare Connetti al feed e quindi selezionare Cargo nel riquadro sinistro.

  4. Copia il frammento fornito dalla sezione di configurazione del Progetto e aggiungilo al file config.toml nel tuo repository sorgente. Il file dovrebbe apparire come questo:

    • Feed con ambito progetto:

      [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 su scala organizzativa

      [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. Creare un token di accesso personale con Pacchetti lettura & scrittura per l'autenticazione con il feed.

  1. Accedere all'organizzazione di Azure DevOps e passare al progetto.

  2. Selezionare Pipelinese quindi selezionare la definizione delle pipeline.

  3. Selezionare Modificae quindi aggiungere il frammento di codice seguente alla pipeline YAML.

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

Pubblicare pacchetti in un feed

  1. Accedere all'organizzazione di Azure DevOps e passare al progetto.

  2. Selezionare Pipelinese quindi selezionare la definizione delle pipeline.

  3. Selezionare Modificae quindi aggiungere il frammento di codice seguente alla pipeline YAML.

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

Esempio

L'esempio seguente illustra come installare Rustup nell'agente, configurare la variabile di ambiente PATH, compilare il progetto, eseguire l'autenticazione con CargoAuthenticate e pubblicare in un feed di Azure Artifacts:

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

Alla fine dell'esecuzione della pipeline, il pacchetto sarà disponibile nel feed, come mostrato di seguito:

Una schermata mostra il pacchetto hello-world-cargo pubblicato nel feed.