title: Publishing package to PyPi from Azure Devops hangs at twine upload
body: <p>I want to publish a built .whl package to PyPi.org from our Azure Devops release pipeline, but the script <code>twine upload</code> keeps hanging without error, completion or time out.  So the actual upload of our package (which is extremely small) does not work.</p>
  
  <p>This is how it is set up:</p>
  
  <h3>The yaml build:</h3>
  
  <pre class="lang-yaml prettyprint-override"><code>trigger:
  - master
  pr: none
  pool:
    vmImage: 'ubuntu-latest'
  
  steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.7'
      addToPath: true
      architecture: 'x64'
  
  - script: python -m pip install --upgrade pip setuptools wheel
    displayName: 'Install tools'
  
  - script: pip install -r src/requirements.txt
    displayName: 'Install requirements'
  
  - script: |    
      python src/setup.py bdist_wheel 
    displayName: 'Artifact creation'
  
  - script: python -m pip install --upgrade twine
    displayName: 'Install Twine'
  
  - task: TwineAuthenticate@1
    inputs:
      pythonUploadServiceConnection: 'AzureML PyPi feed'
  
  - script: |
     python -m twine upload --config-file $(PYPIRC_PATH) dist/*.whl
    displayName: 'Publish to PyPi through Twine'
  </code></pre>
  
  <h3>The service connection:</h3>
  
  <ul>
  <li>The authentication method is specified by <code>Authentication Token</code>.</li>
  <li>Python repository url for upload: <code>https://upload.pypi.org/legacy</code></li>
  <li>EndpointName: <code>azure-pypi</code></li>
  <li>Service Connection name: <code>AzureML PyPi feed</code></li>
  <li>[X] Grant access permission to all pipelines</li>
  </ul>
  
  <h3>The release logs (most relevant parts):</h3>
  
  <p><strong>TwineAuthenticate step</strong>:</p>
  
  <pre><code>Starting: TwineAuthenticate
  ==============================================================================
  Task         : Python twine upload authenticate
  Description  : 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.
  Version      : 1.165.0
  Author       : Microsoft Corporation
  Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/package/twine-authenticate
  ==============================================================================
  75c64e89-xxxxxredactedxxxxx exists true
  Adding authentication to configuration for registry azure-pypi
  Successfully added auth for 0 internal feed and 1 external endpoint.
  Finishing: TwineAuthenticate
  </code></pre>
  
  <p><strong>Publishing step</strong>:</p>
  
  <pre><code>Starting: Publish to PyPi through Twine
  ==============================================================================
  Task         : Command line
  Description  : Run a command line script using Bash on Linux and macOS and cmd.exe on Windows
  Version      : 2.164.0
  Author       : Microsoft Corporation
  Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/command-line
  ==============================================================================
  Generating script.
  Script contents:
  python -m twine upload --config-file /home/vsts/work/_temp/twineAuthenticate/Wv8nMR/.pypirc dist/*.whl
  ========================== Starting Command Output ===========================
  /bin/bash --noprofile --norc /home/vsts/work/_temp/0d772e31-148f-4e3c-999b-b2a43a02b287.sh
  Uploading distributions to https://upload.pypi.org/legacy/
  </code></pre>
  
  <p>This keeps unchanged for more than 30 minutes, so I just cancel my release without the package being deployed.  Any idea on this?</p>