Events
May 19, 6 PM - May 23, 12 AM
Calling all developers, creators, and AI innovators to join us in Seattle @Microsoft Build May 19-22.
Register todayThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Pipelines enables developers to publish Python packages to Azure Artifacts feeds and public registries such as PyPi. This article will guide you through how to publish Python packages to your Azure Artifacts feed.
An Azure DevOps organization and a project. Create an organization or a project if you haven't already.
An Azure Artifacts feed. Create a feed if you don't have one already.
To publish Python packages using twine, you must first authenticate with your Azure Artifacts feed. The TwineAuthenticate task provides twine credentials to a PYPIRC_PATH
environment variable. This variable is then used bytwine
to publish packages directly from your pipeline.
Important
The credentials stored in the PYPIRC_PATH
environment variable take precedence over those in the .ini
and .conf
files.
If you add multiple TwineAuthenticate tasks at different stages in your pipeline, each task execution will extend (not override) the existing PYPIRC_PATH
environment variable.
Sign in to your Azure DevOps organization, and then navigate to your project.
Select Pipelines, and then select your pipeline definition.
Select Edit, and then add the following snippet to your YAML pipeline.
steps:
- task: UsePythonVersion@0
displayName: 'Use Python 3.x'
- task: TwineAuthenticate@1
inputs:
artifactFeed: <PROJECT_NAME/FEED_NAME> ## For an organization-scoped feed, use: artifactFeed: <FEED_NAME>
Note
To publish your packages to a feed using Azure Pipelines, make sure that both the Project Collection Build Service and your project's Build Service identities are assigned the Feed Publisher (Contributor) role in your feed settings. See Manage permissions for details.
Sign in to your Azure DevOps organization, and then navigate to your project.
Select Pipelines, and then select your pipeline definition.
Select Edit, and then add the following snippet to your YAML pipeline.
steps:
- task: UsePythonVersion@0
displayName: 'Use Python 3.x'
- 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> ## For an organization-scoped feed, use: artifactFeed: <FEED_NAME>
displayName: 'Twine Authenticate'
- script: |
python -m twine upload -r <FEED_NAME> --config-file $(PYPIRC_PATH) dist/*.whl
displayName: 'Upload to feed'
Events
May 19, 6 PM - May 23, 12 AM
Calling all developers, creators, and AI innovators to join us in Seattle @Microsoft Build May 19-22.
Register todayTraining
Module
Manage build dependencies with Azure Artifacts - Training
In this module, the Space Game web team guides you through creating a build pipeline that produces a package that can be used by multiple applications.
Certification
Microsoft Certified: Azure Data Scientist Associate - Certifications
Manage data ingestion and preparation, model training and deployment, and machine learning solution monitoring with Python, Azure Machine Learning and MLflow.