Dela via


Publicera lastpaket med Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022

Med Azure Pipelines kan utvecklare publicera Lastpaket till Azure Artifacts-feeds och offentliga register, till exempel Crates.io. I den här artikeln får du lära dig hur du publicerar dina Lastpaket till en Azure Artifacts-feed med hjälp av både YAML- och klassiska pipelines.

Förutsättningar

  • En Azure DevOps-organisation och ett projekt. Skapa en organisation eller ett projekt om du inte redan har gjort det.

  • En feed för Azure Artifacts. Skapa en feed- om du inte redan har en.

Autentisera med en informationsström

  1. Logga in på din Azure DevOps-organisation och navigera sedan till projektet.

  2. Välj Artefakter och välj sedan din feed.

  3. Välj Anslut för att mata och välj sedan Last i den vänstra rutan.

  4. Kopiera det angivna kodfragmentet från avsnittet Project-konfiguration och lägg till det i din config.toml-fil i källlagringsplatsen. Filen bör se ut så här:

    • Flöde med projektomfattning:

      [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>"
      
    • Flöde med organisationsomfattning:

      [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. Skapa en personlig åtkomsttoken med omfång för att paketera>läs- och skrivomfattningar för att autentisera med ditt flöde.

  1. Logga in på din Azure DevOps-organisation och navigera sedan till projektet.

  2. Välj Pipelinesoch välj sedan din pipelinedefinition.

  3. Välj Redigeraoch lägg sedan till följande kodfragment i YAML-pipelinen.

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

Publicera lådor till en feed

  1. Logga in på din Azure DevOps-organisation och navigera sedan till projektet.

  2. Välj Pipelinesoch välj sedan din pipelinedefinition.

  3. Välj Redigeraoch lägg sedan till följande kodfragment i YAML-pipelinen.

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

Exempel

I följande exempel visas hur du installerar Rustup på agenten, konfigurerar PATH-miljövariabeln, skapar projektet, autentiserar med CargoAuthenticate och publicerar till en 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

När körningen av din pipeline är klar bör ditt paket vara tillgängligt i din feed, enligt nedan:

En skärmbild som visar den hello-world-cargo-låda som publicerats i flödet.