Publicar e restaurar pacotes de carga

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

Usando Azure Artifacts, você pode publicar e restaurar pacotes de carga de seus próprios feeds e registros públicos, como crates.io. Use o Azure Artifacts para hospedar crates internos, conectar-se a registros upstream e gerenciar o acesso aos pacotes em um único feed. Este guia de início rápido orienta você na criação de um feed, na configuração do projeto cargo e na publicação e no consumo de pacotes de carga usando Azure Artifacts.

Pré-requisitos

Produto Requisitos
Azure DevOps - Uma Azure DevOps organização.
- Um projeto do Azure DevOps .
- Baixe e instale o rustup. Você precisa do Cargo 1.74.0 ou posterior.

Criar um feed

Se você já tiver um feed de Azure Artifacts, vá para a próxima seção. Caso contrário, siga estas etapas para criar um feed. O Azure Artifacts recomenda o uso de um feed para consumir crates de registros públicos, como crates.io, e de um feed separado para publicar crates internos.

  1. Entre no Azure DevOps e vá para o projeto.

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

  3. Insira um nome para o feed, escolha sua Visibilidade e, em seguida, selecione um Escopo. Certifique-se de selecionar a caixa de seleção Fontes upstream para incluir pacotes de registros públicos.

  4. Selecione Criar quando terminar.

Conectar-se a um feed

Antes de publicar ou restaurar pacotes do feed, primeiro você deve configurar seu projeto para autenticar e conectar-se ao feed.

  1. Entre no Azure DevOps e vá para o projeto.

  2. Selecione Artefatos e, em seguida, selecione o feed no menu suspenso.

  3. Selecione Conectar ao feed e selecione Cargo no painel de navegação esquerdo.

  4. Siga as etapas na seção Configuração do projeto para configurar seu arquivo config.toml.

  5. Na mesma página, siga as instruções em Configurar um provedor de credenciais e faça logon nas seções do Registro para configurar o provedor de credenciais e conectar-se ao feed. Para obter etapas detalhadas, consulte Cargo – configuração do projeto.

Importante

O suporte ao Cargo no Azure Artifacts requer o Rust 1.74 ou posterior, que inclui suporte ao recurso registry-auth. Para atualizar sua versão do Rust, execute rustup update

Importante

O Cargo está atualmente em versão prévia e pode precisar do conjunto de ferramentas noturno com o registry-authunstable feature habilitado. Para habilitar registry-auth, adicione a seguinte configuração a .cargo/config.toml.

[unstable]
registry-auth = true

Para usar o conjunto de ferramentas noturno, execute o seguinte comando:

rustup default nightly

Publicar pacotes

Antes de publicar um pacote Cargo, verifique se você concluiu as etapas em Conectar-se a um feed para que você possa se autenticar no feed do Azure Artifacts.

No diretório que contém o arquivo Cargo.toml , execute o seguinte comando para publicar seu pacote:

cargo publish

Se você encontrar um erro GLib-GObject-CRITICAL - libsecret-CRITICAL, siga estas etapas:

  1. Verifique se o libsecret está instalado:

    sudo apt update && sudo apt install libsecret-1-0
    
  2. Verifique se o gnome-keyring está em execução:

    gnome-keyring-daemon --start --components=secrets
    
  3. Atualize o Rust para a versão estável mais recente e defina estável como a cadeia de ferramentas padrão:

    rustup update  
    rustup default stable  
    
  4. Se o problema continuar, execute cargo publish novamente com log detalhado para coletar mais detalhes:

    RUST_LOG=debug cargo publish --registry <REGISTRY_NAME>
    

Restaurar pacotes

Antes de restaurar as dependências, verifique se você concluiu as etapas em Conectar-se a um feed para que possa se autenticar com seu feed de Azure Artifacts.

  1. Verifique se suas dependências estão listadas na [dependencies] seção do Cargo.toml arquivo.

  2. Se você estiver consumindo crates diretamente do feed privado do Azure Artifacts, especifique explicitamente o registro da seguinte forma:

    [dependencies]
    CRATE_NAME = { version = "VERSION_NUMBER", registry = "FEED_NAME" }
    
  3. Se você estiver fazendo referência aos crates do crates.io por meio do feed upstream usando a configuração replace-with, especifique-os da seguinte maneira:

    [dependencies]
    CRATE_NAME = "VERSION_NUMBER"
    
  4. Execute o seguinte comando no diretório do projeto para criar seu projeto e restaurar suas dependências do feed:

    cargo build
    

Os crates baixados são armazenados em cache localmente em ~/.cargo/registry/cache/<registry-hash>/, em que registry-hash é um identificador exclusivo baseado no URL do seu feed.