Menerbitkan paket Python dengan Azure Pipelines

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Dengan menggunakan Azure Pipelines, pengembang dapat menerbitkan paket Python ke umpan Azure Artifacts, registri publik, atau menyimpannya sebagai artefak alur. Artikel ini akan memandu Anda melalui cara:

  • Menginstal prasyarat
  • Koneksi ke umpan Azure Artifacts
  • Menerbitkan paket Python ke umpan Azure Artifacts

Prasyarat

Mengautentikasi dengan Artefak Azure

Untuk menggunakan twine untuk menerbitkan paket Python, Anda harus terlebih dahulu mengautentikasi dengan umpan Azure Artifacts Anda. Tugas TwineAuthenticate menyediakan info masuk kembar ke PYPIRC_PATH variabel lingkungan. Variabel ini kemudian digunakan olehtwine untuk memfasilitasi penerbitan paket Anda langsung dari alur Anda.

- task: TwineAuthenticate@1
  inputs:
    artifactFeed: <PROJECT_NAME/FEED_NAME>     ## For an organization-scoped feed, artifactFeed: <FEED_NAME>

Penting

Kredensial yang disimpan dalam PYPIRC_PATH variabel lingkungan menggantikan yang ada di file dan .conf Anda.ini.

Jika Anda menambahkan beberapa tugas TwineAuthenticate pada tahap yang berbeda dalam alur Anda, setiap eksekusi tugas tambahan akan memperpanjang (tidak menimpa) variabel lingkungan yang ada PYPIRC_PATH .

Menerbitkan paket Python ke umpan Azure Artifacts

- 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>
  displayName: 'Twine Authenticate'

- script: |
    python -m twine upload -r <FEED_NAME> --config-file $(PYPIRC_PATH) dist/*.whl
  displayName: 'Upload to feed'

Catatan

Untuk menerbitkan paket Anda ke umpan menggunakan Azure Pipelines, baik Project Collection Build Service dan identitas Build Service proyek Anda harus memiliki peran Penerbit Umpan (Kontributor) yang ditetapkan di pengaturan umpan Anda. Lihat Mengelola izin untuk detailnya.