Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Use esta tarefa para autenticar os carregamentos de distribuições Python usando o twine. Adicione -r FeedName/EndpointName --config-file $(PYPIRC_PATH) ao comando twine upload. Para feeds presentes nesta organização, use o nome do feed como o repositório (-r). Caso contrário, use o nome do ponto de extremidade definido na conexão de serviço.
Sintaxe
# Python twine upload authenticate v1
# Authenticate for uploading Python distributions using twine. Add '-r FeedName/EndpointName --config-file $(PYPIRC_PATH)' to your twine upload command. For feeds present in this organization, use the feed name as the repository (-r). Otherwise, use the endpoint name defined in the service connection.
- task: TwineAuthenticate@1
inputs:
# Feeds and Authentication
#azureDevOpsServiceConnection: # string. Alias: workloadIdentityServiceConnection. 'Azure DevOps' Service Connection.
#feedUrl: # string. Azure Artifacts Feed url.
#artifactFeed: # string. My feed name (select below).
#pythonUploadServiceConnection: # string. Feed from external organizations.
# Python twine upload authenticate v1
# Authenticate for uploading Python distributions using twine. Add '-r FeedName/EndpointName --config-file $(PYPIRC_PATH)' to your twine upload command. For feeds present in this organization, use the feed name as the repository (-r). Otherwise, use the endpoint name defined in the service connection.
- task: TwineAuthenticate@1
inputs:
# Feeds and Authentication
#artifactFeed: # string. My feed name (select below).
#pythonUploadServiceConnection: # string. Feed from external organizations.
# Python twine upload authenticate v1
# Authenticate for uploading Python distributions using twine. Add '-r FeedName/EndpointName --config-file $(PYPIRC_PATH)' to your twine upload command. For feeds present in this organization, use the feed name as the repository (-r). Otherwise, use the endpoint name defined in the service connection.
- task: TwineAuthenticate@1
inputs:
# Feeds and Authentication
#artifactFeed: # string. My feed (select below).
#pythonUploadServiceConnection: # string. Feed from external organizations.
Insumos
azureDevOpsServiceConnection
-
'Azure DevOps' Ligação ao Serviço
Alias de entrada: workloadIdentityServiceConnection.
string.
Se isto estiver definido, feedUrl é obrigatório. Todas as outras entradas são ignoradas.
feedUrl
-
Artefactos do Azure Feed url.
string.
Se isto estiver definido, workloadIdentityServiceConnection é obrigatório. Todas as outras entradas são ignoradas. Não é compatível com pythonUploadServiceConnections. O URL do feed deve estar no pypi formato de registo de upload: https://pkgs.dev.azure.com/{ORG_NAME}/{PROJECT}/_packaging/{FEED_NAME}/pypi/upload/.
artifactFeed
-
Nome do meu feed (selecione abaixo)
string.
Especifica o nome do feed do artefacto do Azure para autenticar com fio. O feed de autenticação deve estar presente na organização. Para feeds com escopo de projeto, use a sintaxe projectName/feedNameSelect.
artifactFeed
-
Meu feed (selecione abaixo)
string.
Especifica o nome do feed do artefacto do Azure para autenticar com fio. O feed de autenticação deve estar presente na organização. Para feeds com escopo de projeto, use a sintaxe projectName/feedNameSelect.
pythonUploadServiceConnection
-
Feed de organizações externas
string.
Uma conexão de serviço de fio nome de uma organização externa para autenticar com o fio. As credenciais armazenadas no ponto de extremidade devem ter permissões de carregamento de pacote.
Opções de controlo de tarefas
Todas as tarefas têm opções de controle, além de suas entradas de tarefas. Para obter mais informações, consulte Opções de controle de e propriedades de tarefas comuns.
Variáveis de saída
Nenhum.
Observações
Fornece credenciais twine para uma variável de ambiente PYPIRC_PATH para o escopo da compilação. Isto permite-te publicar Python pacotes para feeds com twine da tua build.
- Quando devo executar esta tarefa no meu pipeline?
- Meu agente está por trás de um proxy da web. O TwineAuthenticate configurará o fio para usar meu proxy?
- Meu Pipeline precisa acessar um feed em um projeto diferente
Quando devo executar esta tarefa no meu pipeline?
Esta tarefa deve ser executada antes de usar o Twine para carregar distribuições em Python para uma fonte de pacote autenticada, como o Artefactos do Azure. Não existem outros requisitos de encomenda. Várias invocações desta tarefa não empilharão credenciais. Cada tarefa executada apagará todas as credenciais armazenadas anteriormente.
Meu agente está por trás de um proxy da web. O TwineAuthenticate configurará o fio para usar meu proxy?
Não. Embora essa tarefa em si funcione atrás de um proxy da Web que seu agente tenha sido configurado para usar, ele não configura o twine para usar o proxy.
Meu pipeline precisa acessar um feed em um projeto diferente
Se o pipeline estiver sendo executado em um projeto diferente do projeto que hospeda o feed, você deverá configurar o outro projeto para conceder acesso de leitura/gravação ao serviço de compilação. Consulte permissões Package em Azure Pipelines para mais detalhes.
Exemplos
Os exemplos seguintes demonstram como publicar distribuição em Python no feed do Artefactos do Azure e no registo oficial de Python.
- Publicar Python distribuição para Artefactos do Azure feed
- Publicar Python distribuição no registo oficial Python
Publicar a distribuição Python no feed do Artefactos do Azure
Neste exemplo, estamos a definir autenticação para publicação num feed privado do Artefactos do Azure. A tarefa de autenticação cria um arquivo de .pypirc que contém as credenciais de autenticação necessárias para publicar uma distribuição no feed.
# Install python distributions like wheel, twine etc
- script: |
pip install wheel
pip install twine
# Build the python distribution from source
- script: |
python setup.py bdist_wheel
- task: TwineAuthenticate@1
displayName: Twine Authenticate
inputs:
artifactFeed: projectName/feedName # For project scoped feeds use: projectName/FeedName, or just feedName for organization scoped feeds
- script: |
python -m twine upload -r feedName --config-file $(PYPIRC_PATH) dist/*.whl # Use -r to pass the repository name (defined in the .pypirc file), and --config-file to point to the .pypirc path set by the TwineAuthenticate task
displayName: Upload package with Twine
A entrada artifactFeed conterá o projeto e o nome do feed se o feed tiver o escopo do projeto. Se o feed tiver o escopo da organização, somente o nome do feed deverá ser fornecido.
Mais informações.
Publique a distribuição Python no registo oficial de Python
Neste exemplo, estamos a configurar a autenticação para publicação no registo oficial de Python. Crie uma conexão de de serviço de fio entrada para pypi. A tarefa de autenticação usa essa conexão de serviço para criar um arquivo de .pypirc que contém as credenciais de autenticação necessárias para publicar a distribuição.
# Install python distributions like wheel, twine etc
- script: |
pip install wheel
pip install twine
# Build the python distribution from source
- script: |
python setup.py bdist_wheel
- task: TwineAuthenticate@1
displayName: Twine Authenticate
inputs:
pythonUploadServiceConnection: pypitest # Name of the Python package upload service connection
- script: |
python -m twine upload -r "pypitest" --config-file $(PYPIRC_PATH) dist/*.whl # Use -r to pass the repository name, and --config-file to point to the .pypirc path set by the TwineAuthenticate task
displayName: Upload package with Twine
Requerimentos
| Requisito | Descrição |
|---|---|
| Tipos de pipeline | YAML, Construção clássica, Versão clássica |
| Funciona em | Agente, DeploymentGroup |
| Exigências | Nenhum |
| Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho. |
| Restrições de comando | Qualquer |
| Variáveis configuráveis | Qualquer |
| Versão do agente | 2.144.0 ou superior |
| Categoria de tarefa | Embalagem |
| Requisito | Descrição |
|---|---|
| Tipos de pipeline | YAML, Construção clássica, Versão clássica |
| Funciona em | Agente, DeploymentGroup |
| Exigências | Nenhum |
| Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho. |
| Restrições de comando | Qualquer |
| Variáveis configuráveis | Qualquer |
| Versão do agente | 2.120.0 ou superior |
| Categoria de tarefa | Embalagem |