Publicar pacotes Cargo com o Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022
O Azure Pipelines permite que os desenvolvedores publiquem pacotes de carga em feeds do Azure Artifacts e registros públicos, como Crates.io. Neste artigo, você aprenderá como publicar seus pacotes Cargo em um feed do Azure Artifacts usando pipelines YAML e Clássico.
Pré-requisitos
Uma organização do Azure DevOps e um projeto. Crie uma organização ou um projeto se ainda não tiver feito isso.
Um feed do Azure Artifacts. Criar um feed se você ainda não tiver um.
Autenticar com um feed
Entre na sua organização do Azure DevOps e navegue até seu projeto.
Selecione Artefatos e, em seguida, selecione o feed.
Selecione Conectar ao feed e, em seguida, selecione Cargo no painel esquerdo.
Copie o snippet fornecido da seção de configuração do Projeto e adicione-o ao arquivo config.toml no repositório de origem. O arquivo deve ter esta aparência:
Feed do projeto com escopo:
[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 da organização com escopo:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Crie um Token de acesso pessoal com escopos de Empacotamento>Leitura e gravação para autenticar com seu feed.
Entre na sua organização do Azure DevOps e navegue até seu projeto.
Selecione Pipelines e, em seguida, selecione a definição do pipeline.
Selecione Editar e adicione o snippet a seguir ao 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"
Publicar pacotes em um feed
Entre na sua organização do Azure DevOps e navegue até seu projeto.
Selecione Pipelines e, em seguida, selecione a definição do pipeline.
Selecione Editar e adicione o snippet a seguir ao pipeline YAML.
- powershell: | cargo publish --registry <FEED_NAME> ## Replace the placeholder with your feed name env: SYSTEM_ACCESSTOKEN: $(system.accesstoken)
Exemplo
O exemplo a seguir mostra como instalar o Rustup no agente, configurar a variável de ambiente PATH, compilar o projeto, autenticar com CargoAuthenticate e publicar em um feed do 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
Depois que a execução do pipeline for concluída, o crate deverá estar disponível no feed, conforme mostrado abaixo: