Aracılığıyla paylaş


Python uygulaması oluşturma ve yayımlama

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Bu hızlı başlangıçta, bir Python uygulamasını derleyen ve test eden bir işlem hattı oluşturacaksınız. Sürekli tümleştirme ve sürekli teslim (CI/CD) sisteminizin bir parçası olarak Python uygulamaları ve betikleri derlemek, test etmek ve dağıtmak için Azure Pipelines'ın nasıl kullanılacağını görürsünüz.

Önkoşullar

Python, Linux, macOS ve Windows için Microsoft tarafından barındırılan aracılara önceden yüklenmiştir. Python projeleri oluşturmak için başka bir şey ayarlamanız gerekmez. Hangi Python sürümlerinin önceden yüklendiğini görmek için bkz. Yazılım.

Ürün Gereksinimler
Azure DevOps - Azure DevOps projesi.
- Microsoft tarafından barındırılan ajanlarda pipeline'ları çalıştırma yeteneği. Paralel bir iş satın alabilir veya ücretsiz katman isteyebilirsiniz.
- YAML ve Azure Pipelines hakkında temel bilgiler. Daha fazla bilgi için bkz. İlk işlem hattınızı oluşturma.
- İzinler:
     - Bir boru hattı oluşturmak için Katkıda Bulunanlar grubunda olmanız ve grubun Boru hattı oluşturma izninin İzin Ver olarak ayarlanması gerekir. Proje Yöneticileri grubunun üyeleri işlem hatlarını yönetebilir.
    - Hizmet bağlantıları oluşturmak için:hizmet bağlantıları için Yönetici veya Oluşturucu rolüne sahip olmanız gerekir.
GitHub (İngilizce) - GitHub hesabı.
- Azure Pipelines'ı yetkilendirmek için bir GitHub hizmet bağlantısı .
Ürün Gereksinimler
Azure DevOps - Azure DevOps projesi.
- Python 3.12 veya başka bir Python sürümü yüklü olan kendi barındırdığı bir aracı. Bir tane oluşturmak için bkz. Öz barındırılan aracılar.
- YAML ve Azure Pipelines hakkında temel bilgiler. Daha fazla bilgi için bkz. İlk işlem hattınızı oluşturma.
- İzinler:
    - Bir boru hattı oluşturmak için Katkıda Bulunanlar grubunda olmanız ve grubun Boru hattı oluşturma izninin İzin Ver olarak ayarlanması gerekir. Proje Yöneticileri grubunun üyeleri işlem hatlarını yönetebilir.
    - Hizmet bağlantıları oluşturmak için:hizmet bağlantıları için Yönetici veya Oluşturucu rolüne sahip olmanız gerekir.
GitHub (İngilizce) - GitHub hesabı.
- Azure Pipelines'ı yetkilendirmek için bir GitHub hizmet bağlantısı .

Önemli

GitHub yordamları, GitHub'da aşağıdaki eylemlerden birini veya daha fazlasını gerçekleştirmenizi gerektirebilir:

  • Oturum Aç.
  • Azure Pipelines'a yetki ver.
  • GitHub kuruluşlarında kimlik doğrulaması yapın.
  • Azure Pipelines uygulamasını yükleyin.

Gerekli işlemleri tamamlamak için yönergeleri izleyin. Daha fazla bilgi için bkz. GitHub depolarına erişim.

Örnek kodu kopyalayın ve üzerinde çalışın

Örnek Python deposunu GitHub hesabınıza fork edin.

  1. python-sample-vscode-flask-tutorial deposuna gidin.
  2. Sağ üst köşeden Çatal'ı seçin.
  3. GitHub hesap adınızın Sahip altında seçildiğinden emin olun ve Fork oluştur'u seçin. Çatal, varsayılan olarak üst depoyla aynı şekilde adlandırılır, ancak ona farklı bir ad verebilirsiniz.

İşlem hattınızı oluşturma

  1. Azure DevOps projenizde sol gezinti menüsünden İşlem Hatları'nı ve ardından Yeni işlem hattı'nı veya projede ilk işlem hattı bu işlem hattıysa İşlem Hattı Oluştur'u seçin.
  2. Kodunuz nerede ekranında kaynak kodunuzun konumu olarak GitHub'ı seçin.
  3. Depo seçin ekranında, çatallanmış Python örnek deponuzu seçin.
  4. İşlem hattınızı yapılandırın ekranında Başlatıcı işlem hattı'nı seçin.

İşlem hattınızı özelleştirme

İşlem hattı YAML'nizi gözden geçirin ekranında, oluşturulan azure-pipelines.yml dosyasının içeriğini aşağıdaki kodla değiştirin. Kod, Python'ın üç farklı sürümünde aşağıdaki eylemleri gerçekleştirir:

  1. Gerekli Python sürümünü ve bağımlılıklarını yükler.
  2. Derleme çıktılarını bir ZIP arşivine paketler.
  3. Arşivi işlem hattınızda yayımlar.
  4. Testleri çalıştırır.
trigger:
- main

pool:
  vmImage: ubuntu-latest

strategy:
  matrix:
    Python310:
      python.version: '3.10'
    Python311:
      python.version: '3.11'
    Python312:
      python.version: '3.12'

steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '$(python.version)'
    displayName: 'Use Python $(python.version)'

  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'

  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: $(System.DefaultWorkingDirectory)
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId)-$(python.version).zip
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - script: |
      pip install pytest pytest-azurepipelines
      pytest
    displayName: 'pytest'

İşlem hattı YAML'nizi gözden geçirin ekranında, oluşturulan azure-pipelines.yml dosyasının içeriğini aşağıdaki kodla değiştirin. Kod aşağıdaki eylemleri gerçekleştirir:

  1. Gerekli Python sürümünü ve bağımlılıklarını yükler.
  2. Derleme çıktılarını bir ZIP arşivine paketler.
  3. Arşivi işlem hattınızda yayımlar.
  4. Testleri çalıştırır.

azure-pipelines.yml proje yapılandırmanızla eşleşecek şekilde özelleştirin.

  • Eğer farklı bir aracı havuzunuz varsa, name yer tutucusunu havuz adınızla veya default ile değiştirin.
  • Gerekirse Python'ı versionSpec kendi barındırdığınız aracınızda yüklü bir sürümle değiştirin.
  trigger:
  - main

  pool: 
    name: '<your-pool-name or default>'

  steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.12'
    displayName: 'Use Python 3.12'  

  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'


  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: $(System.DefaultWorkingDirectory)
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - script: |
      pip install pytest pytest-azurepipelines
      pytest
    displayName: 'pytest'

İşlem hattınızı çalıştırma

Kaydet ve çalıştır'ı ve ardından Kaydet ve yeniden çalıştır'ı seçin. İşinizin nasıl çalıştığını görmek için Özet ekranında iş'i seçebilirsiniz.

İş, belirtilen her Python sürümü için toplamda üç kez çalıştırılır. Üç sürüm farklı aracılarda paralel olarak çalıştırılabilir.

Birden çok sürüme sahip tamamlanmış Python işinin ekran görüntüsü.

Tamamlanan tek Python işinin ekran görüntüsü.

Artifaktları ve test sonuçlarını görüntüle

Derleme yapıtlarınızı görüntülemek için Özet sekmesinde [N] yayımlanmış bağlantısını seçin.

Yayınlanmış yapı çıktıları bağlantısının ekran görüntüsü.

Yapıtlar sayfasında yayımlanan derleme yapıtları gösterilir.

Yayımlanan derleme yapıtlarının ekran görüntüsü.

Tek bir iş için yayımlanan derleme yapıtlarının ekran görüntüsü.

Test sonuçlarını görüntülemek için Testler sekmesini seçin.

İşlem hattı test sonuçlarının ekran görüntüsü.

Temizleme

Oluşturduğunuz işlem hattını kullanmayı bitirdiyseniz silebilirsiniz.

  1. Projenizin sol gezinti menüsünden İşlem hatları'ı seçin.

  2. İşlem hattı listesinde, oluşturduğunuz işlem hattının üzerine gelin, sağ tarafta Diğer eylemler simgesini ve ardından Sil'i seçin.

    İsterseniz işlem hattını seçin ve işlem hattı sayfasında sağ üst taraftaki Diğer eylemler simgesini ve ardından Sil'i seçin.

  3. İşlem hattı adını girin ve Sil'i tekrar seçin.

Python uygulamasını oluşturup test eden bir işlem hattını başarıyla oluşturdunuz ve çalıştırdunuz. Artık Azure Pipelines'ı kullanarak CI/CD işleminizin bir parçası olarak Python uygulamalarını ve betiklerini derleyebilir, test edebilir ve dağıtabilirsiniz.

Sonraki adım