Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use essa tarefa para autenticar uploads de distribuições Python usando o twine. Adicione -r FeedName/EndpointName --config-file $(PYPIRC_PATH) ao comando de upload do twine. 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.
Entradas
azureDevOpsServiceConnection
-
'Azure DevOps' Conexão de Serviço
Alias de entrada: workloadIdentityServiceConnection.
string.
Se isso estiver definido, feedUrl é obrigatório. Todas as outras entradas são ignoradas.
feedUrl
-
Azure Artifacts Feed url.
string.
Se isso estiver definido, workloadIdentityServiceConnection é obrigatório. Todas as outras entradas são ignoradas. Não é compatível com pythonUploadServiceConnections. A URL do feed deve estar no pypi formato de registro de upload: https://pkgs.dev.azure.com/{ORG_NAME}/{PROJECT}/_packaging/{FEED_NAME}/pypi/upload/.
artifactFeed
-
Meu nome do feed (selecione abaixo)
string.
Especifica o nome do feed do artefato Azure para autenticar com barbante. 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 artefato Azure para autenticar com barbante. O feed de autenticação deve estar presente na organização. Para feeds com escopo de projeto, use a sintaxe projectName/feedNameSelect.
feed pythonUploadServiceConnection - de organizações externas
string.
Uma conexão de serviço de gêmeo nome de uma organização externa para autenticar com o twine. As credenciais armazenadas no ponto de extremidade devem ter permissões de carregamento de pacote.
Opções de controle de tarefa
Todas as tarefas têm opções de controle além das suas entradas de tarefas. Para obter mais informações, consulte as opções de Controle de e as propriedades comuns da tarefa.
Variáveis de saída
Nenhum.
Observações
Fornece twine credenciais para uma variável de ambiente PYPIRC_PATH para o escopo do build. Isso permite que você publique Python pacotes em feeds com twine da sua build.
- Quando no meu pipeline devo executar essa tarefa?
- Meu agente está por trás de um proxy Web. TwineAuthenticate configurará o twine para usar meu proxy?
- Meu Pipeline precisa acessar um feed em um projeto diferente
Quando no meu pipeline devo executar essa tarefa?
Essa tarefa deve ser executada antes de você usar o Twine para enviar distribuições em Python para uma fonte de pacote autenticada, como o Azure Artifacts. Não há outros requisitos de ordenação. Várias invocações dessa tarefa não empilharão credenciais. Cada execução de tarefa apagará as credenciais armazenadas anteriormente.
Meu agente está por trás de um proxy Web. TwineAuthenticate configurará o twine para usar meu proxy?
Não. Embora essa tarefa em si funcione por trás de um proxy Web seu agente tenha sido configurado para usar, ela não configura o twine para usar o proxy.
Meu Pipeline precisa acessar um feed em um projeto diferente
Se o pipeline estiver em execução 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 build. Veja permissões Package em Azure Pipelines para mais detalhes.
Exemplos
Os exemplos a seguir demonstram como publicar distribuição em Python no feed do Azure Artifacts e no registro oficial de Python.
- Publique Python distribuição para Azure Artifacts feed
- Publique Python distribuição no registro oficial de Python
Publicar a distribuição Python no feed Azure Artifacts
Neste exemplo, estamos configurando a autenticação para publicação em um feed privado do Azure Artifacts. A tarefa de autenticação cria um arquivo .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 estiver no escopo do projeto. Se o feed estiver no escopo da organização, somente o nome do feed deverá ser fornecido.
Saiba mais.
Publique a distribuição em Python no registro oficial de Python
Neste exemplo, estamos configurando a autenticação para publicação no registro oficial de Python. Criar uma entrada de de conexão de serviço do twine para pypi. A tarefa de autenticação usa essa conexão de serviço para criar um arquivo .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
Requisitos
| Requisito | Descrição |
|---|---|
| Tipos de pipeline | YAML, build clássico, versão clássica |
| Execuções em | Agente, DeploymentGroup |
| de demandas | Nenhum |
| recursos | Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho. |
| restrições de comando | Qualquer |
| variáveis settable | Qualquer |
| Versão do agente | 2.144.0 ou superior |
| Categoria de tarefa | Pacote |
| Requisito | Descrição |
|---|---|
| Tipos de pipeline | YAML, build clássico, versão clássica |
| Execuções em | Agente, DeploymentGroup |
| de demandas | Nenhum |
| recursos | Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho. |
| restrições de comando | Qualquer |
| variáveis settable | Qualquer |
| Versão do agente | 2.120.0 ou superior |
| Categoria de tarefa | Pacote |