Publicar pacotes Python com o Azure Pipelines

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

Usando o Azure Pipelines, os desenvolvedores podem publicar pacotes Python em feeds de Artefatos do Azure, registros públicos ou armazená-los como artefatos de pipeline. Este artigo irá guiá-lo através de como:

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

Pré-requisitos

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

  • Um feed de Artefatos do Azure. Crie um feed se ainda não tiver um.

Autenticar com artefatos do Azure

Para usar twine para publicar seus pacotes Python, você deve primeiro autenticar com seu feed de Artefatos do Azure. A tarefa TwineAuthenticate fornece credenciais de fio para uma variável de PYPIRC_PATH ambiente. Essa variável é então usada paratwine facilitar a publicação de seus pacotes diretamente do seu 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 substituem PYPIRC_PATH as dos seus .ini e .conf arquivos.

Se você adicionar várias tarefas TwineAuthenticate em diferentes estágios em seu 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 de Artefatos do Azure

- 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'

Nota

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