Sdílet prostřednictvím


Publikování balíčků Pythonu pomocí Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Azure Pipelines umožňuje vývojářům publikovat balíčky Pythonu do informačních kanálů Azure Artifacts a veřejných registrů, jako je PyPi. Tento článek vás provede publikováním balíčků Pythonu do informačního kanálu Azure Artifacts.

Požadavky

Ověření pomocí zdroje

Pokud chcete publikovat balíčky Pythonu pomocí twine, musíte se nejdřív ověřit s vaším kanálem Azure Artifacts. Úloha TwineAuthenticate zprostředkovává přihlašovací údaje Twine k proměnné prostředí. Tuto proměnnou pak použijetwine k publikování balíčků přímo z vašeho pipeline.

Důležité

Přihlašovací údaje uložené v proměnné prostředí PYPIRC_PATH mají přednost před přihlašovacími údaji v .ini a .conf souborech.

Pokud přidáte více TwineAuthenticate úloh v různých fázích vaší pipeliny, každé spuštění úkolu rozšíří (nepřepíše) stávající proměnné prostředí PYPIRC_PATH.

  1. Přihlaste se ke své organizaci Azure DevOps a přejděte k projektu.

  2. Vyberte Pipelinesa pak vyberte definici kanálu.

  3. Vyberte Upravita pak do kanálu YAML přidejte následující fragment kódu.

    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>
    

Publikování balíčků Pythonu do informačního kanálu

Poznámka:

Pokud chcete publikovat balíčky do informačního kanálu pomocí Azure Pipelines, ujistěte se, že jak identitě Project Collection Build Service, tak identitě Build Service vašeho projektu je v nastavení informačního kanálu přiřazena role Feed Publisher (Přispěvatel). Podrobnosti najdete v tématu Správa oprávnění .

  1. Přihlaste se ke své organizaci Azure DevOps a přejděte k projektu.

  2. Vyberte Pipelinesa pak vyberte definici kanálu.

  3. Vyberte Upravita pak do kanálu YAML přidejte následující fragment kódu.

    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'