Publicar pacotes Python com o Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Por meio do Azure Pipelines, os desenvolvedores podem publicar pacotes do Python em feeds do Azure Artifacts, registros públicos ou armazená-los como artefatos de pipeline. Este artigo orientará você sobre como:

  • Instalar os pré-requisitos
  • Conectar-se a um feed do Azure Artifacts
  • Publicar pacotes Python em um feed do Azure Artifacts

Pré-requisitos

  • Uma organização do Azure DevOps e um projeto. Crie uma organização ou um projeto , caso ainda não tenha feito isso.

  • Um feed do Azure Artifacts. Crie um feed se você ainda não tiver um.

Autenticar com o Azure Artifacts

Para usar o twine para publicar seus pacotes do Python, primeiro você deve se autenticar com o feed do Azure Artifacts. A tarefa TwineAuthenticate fornece credenciais twine para uma variável de ambiente PYPIRC_PATH. Essa variável é usada por twine para facilitar a publicação de seus pacotes diretamente do pipeline.

- task: TwineAuthenticate@1
  inputs:
    artifactFeed: <PROJECT_NAME/FEED_NAME>     ## For an organization-scoped feed, artifactFeed: <FEED_NAME>

Importante

As credenciais armazenadas na variável de ambiente PYPIRC_PATH substituem as dos seus arquivos .ini e .conf.

Se você adicionar várias tarefas TwineAuthenticate em fases diferentes no pipeline, cada execução de tarefa adicional estenderá (não substituirá) a variável de ambiente existente PYPIRC_PATH.

Publicar pacotes Python em um feed do Azure Artifacts

- script: |
    pip install build
    pip install twine
  displayName: 'Install build and twine'

- script: |
    python -m build -w
  displayName: 'Python build'

- task: TwineAuthenticate@1
  inputs:
    artifactFeed: <PROJECT_NAME/FEED_NAME>
  displayName: 'Twine Authenticate'

- script: |
    python -m twine upload -r <FEED_NAME> --config-file $(PYPIRC_PATH) dist/*.whl
  displayName: 'Upload to feed'

Observação

Para publicar seus pacotes em um feed usando o Azure Pipelines, o Serviço de Criação de Coleção de Projetos e as identidades do Serviço de Criação do projeto devem ter a função Publicador de Feed (Colaborador) atribuída em suas configurações de feed. Consulte Gerenciar permissões para obter detalhes.