Publicar e restaurar pacotes de carga

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

Ao usar Artefactos do Azure, pode publicar e restaurar pacotes Cargo a partir dos seus próprios feeds e registos públicos como crates.io. Utilize o Artefactos do Azure para alojar crates internos, estabelecer ligação a registos a montante e gerir o acesso aos pacotes num único feed. Este quickstart guia-o na criação de um feed, na configuração do seu projeto Cargo e na publicação e consumo de pacotes Cargo usando o Artefactos do Azure.

Pré-requisitos

Produto Requirements
Azure DevOps - Uma Azure DevOps organização.
- Um projeto Azure DevOps .
- Baixe e instale rustup. Precisas do Cargo 1.74.0 ou posterior.

Criar um feed

Se já tem um feed do Artefactos do Azure, vá para a secção seguinte. Caso contrário, siga estes passos para criar um feed. O Artefactos do Azure recomenda a utilização de um feed para consumir crates de registos públicos, como crates.io, e de um feed separado para publicar crates internos.

  1. Inicia sessão no Azure DevOps e depois vai ao teu projeto.

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

  3. Introduza um Nome para o seu feed, escolha a sua Visibilidade e depois selecione um Escopo. Certifique-se de que seleciona a caixa Fontes Upstream para incluir pacotes de registos públicos.

  4. Selecione Criar quando terminar.

Conectar-se a um feed

Antes de poder publicar ou restaurar pacotes do seu feed, deve primeiro configurar o seu projeto para autenticar e ligar-se ao feed.

  1. Inicia sessão no Azure DevOps e depois vai ao teu projeto.

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

  3. Selecione Conectar ao feed e, em seguida, selecione Carga no painel de navegação esquerdo.

  4. Siga os passos na secção de configuração do Project para configurar o seu config.toml ficheiro.

  5. Na mesma página, siga as instruções em Configurar um fornecedor de credenciais e inicie sessão nas secções do registo para configurar o fornecedor de credenciais e ligar-se ao seu feed. Para passos detalhados, veja Carga - configuração do projeto.

Importante

O suporte de carga em Artefactos do Azure requer Rust 1.74 ou posterior, o que inclui suporte para esta registry-auth funcionalidade. Para atualizar a sua versão do Rust, execute rustup update

Importante

Cargo está atualmente em pré-visualização e pode exigir a nightly toolchain com a registry-authfuncionalidade instável ativada. Para ativar registry-auth, adicione a seguinte definição em .cargo/config.toml.

[unstable]
registry-auth = true

Para usar a cadeia de ferramentas noturna, execute o seguinte comando:

rustup default nightly

Publicar pacotes

Antes de publicar um pacote Cargo, certifique-se de que completou os passos em Connect to a feed para que possa autenticar com o seu feed do Artefactos do Azure.

A partir do diretório que contém o seu ficheiro Cargo.toml , execute o seguinte comando para publicar o seu pacote:

cargo publish

Se encontrar um erro GLib-GObject-CRITICAL - libsecret-CRITICAL, certifique-se de seguir os passos:

  1. Verifique se o libsecret está instalado:

    sudo apt update && sudo apt install libsecret-1-0
    
  2. Certifique-se de que o gnome-keyring está a funcionar:

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

    rustup update  
    rustup default stable  
    
  4. Se o problema persistir, execute novamente cargo publish com registo detalhado para recolher mais informações:

    RUST_LOG=debug cargo publish --registry <REGISTRY_NAME>
    

Restaurar pacotes

Antes de restaurar dependências, certifique-se de que completou os passos em Connect to a feed para poder autenticar com o seu feed Artefactos do Azure.

  1. Certifica-te de que as tuas dependências estão listadas na [dependencies] secção do teu Cargo.toml ficheiro.

  2. Se estiveres a utilizar crates diretamente a partir do teu feed privado do Artefactos do Azure, especifica explicitamente o registry da seguinte forma:

    [dependencies]
    CRATE_NAME = { version = "VERSION_NUMBER", registry = "FEED_NAME" }
    
  3. Se estiver a referenciar crates de crates.io através do seu feed a montante, utilizando a configuração replace-with, especifique-as da seguinte forma:

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

    cargo build
    

Os pacotes transferidos são colocados em cache localmente em ~/.cargo/registry/cache/<registry-hash>/, em que registry-hash é um identificador único baseado no URL do seu feed.