Partilhar via


Publicar pacotes de carga com o Azure Pipelines

Serviços de DevOps do Azure | Azure DevOps Server 2022

O Azure Pipelines permite que os desenvolvedores publiquem seus pacotes de carga em feeds de artefatos do Azure e registros públicos, como Crates.io. Neste artigo, você aprenderá como publicar seus pacotes de carga em um feed de artefatos do Azure usando pipelines YAML e Classic.

Este artigo irá guiá-lo através de como:

  • Criar um feed de Artefatos do Azure
  • Autenticar com artefatos do Azure
  • Publicar pacotes de carga

Pré-requisitos

Criar um feed

O Azure Artifacts recomenda ter um feed dedicado para consumir caixas de crates.io e um feed separado exclusivamente para publicar caixas internas. Se já tiver um feed, pode avançar para a secção seguinte.

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Artefatos e, em seguida, selecione Criar feed.

  3. Forneça um Nome para o feed, especifique sua Visibilidade e escolha um Escopo para o feed.

  4. Selecione Criar quando terminar.

    Uma captura de tela mostrando como criar uma alimentação de carga para pacotes internos.

Autenticar com artefatos do Azure

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Artefatos e, em seguida, selecione seu feed.

  3. Selecione Conectar ao feed e, em seguida, selecione Carga no painel esquerdo.

  4. Siga as instruções na seção Configuração do projeto adicionando o trecho fornecido ao arquivo config.toml no repositório de origem:

    • Feed com escopo do projeto:

      [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 com escopo da organização:

      [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. Crie um token de acesso pessoal com Packaging>Read & escreva escopos para autenticar com seu feed.

  6. Use a tarefa CargoAuthenticate para autenticar a partir do seu pipeline:

    1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

    2. Selecione Pipelines, selecione sua definição de pipeline e selecione Editar.

    3. Selecione o + sinal para adicionar uma nova tarefa. Procure a tarefa Autenticação de carga e selecione Adicionar para adicioná-la ao seu pipeline.

    4. Selecione o ícone de reticências para abrir uma nova janela exibindo o conteúdo do repositório e, em seguida, escolha o arquivo config.toml .

      Uma captura de tela mostrando a tarefa Carregar autenticar em um pipeline clássico.

Publique caixas no seu feed

  1. No seu projeto do Azure DevOps, selecione Pipelines, selecione sua definição de pipeline e selecione Editar.

  2. Selecione o sinal no trabalho do + agente para adicionar uma nova tarefa. Localize a tarefa do PowerShell por meio da função de pesquisa e selecione Adicionar para adicioná-la ao seu pipeline.

  3. Dê um nome à sua tarefa, por exemplo, Publicar e, em seguida, selecione Inline como o tipo. Cole o comando publish inline, substituindo o espaço reservado pelo nome do feed:

    cargo publish --registry <FEED_NAME>
    

Uma captura de tela mostrando como publicar caixas e feed de Artefatos do Azure usando um pipeline clássico.

Exemplo

Neste exemplo, instalaremos rustup no agente, configuraremos a variável de ambiente PATH, criaremos nosso projeto, autenticaremos com CargoAuthenticate e, finalmente, publicaremos nossa caixa em nosso feed de Artefatos do Azure:

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

Depois que a execução do pipeline for concluída, sua caixa deve estar disponível em seu feed, conforme mostrado abaixo:

Uma captura de tela mostrando a caixa hello-world-cargo publicada no feed.