Python uygulaması oluşturma ve yayımlama

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

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 . Microsoft tarafından barındırılan aracı kullanma.

Örnek kodu çatallayın

Örnek Python deposunu GitHub hesabınıza çatal oluşturun.

  1. python-sample-vscode-flask-tutorial deposuna gidin.
  2. Sayfanın sağ üst köşesindeki Çatal'ı seçin.
  3. GitHub hesabınızı seçin. Varsayılan olarak, çatal üst depoyla aynı şekilde adlandırılır, ancak farklı bir ad vekleyebilirsiniz.

Önemli

Aşağıdaki yordamlar sırasında, oturum açmak, Azure Pipelines'ı yüklemek veya Azure Pipelines'ı yetkilendirmek için GitHub hizmet bağlantısı oluşturmanız veya GitHub'a yönlendirilmeniz istenebilir. İşlemi tamamlamak için ekrandaki yönergeleri izleyin. Daha fazla bilgi için bkz . GitHub depolarına erişim.

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

  1. Azure DevOps projenizde İşlem Hatları İşlem Hattı> Oluştur'u ve ardından kaynak kodunuzun konumu olarak GitHub'ı seçin.
  2. Depo seçin ekranında, çatallanmış örnek deponuzu seçin.
  3. İş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:

  • Gerekli Python sürümlerini ve bağımlılıklarını yükler.
  • Derleme yapıtlarını bir ZIP arşivine paketler.
  • Arşivi işlem hattınızda yayımlar.
  • 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'

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

  • Farklı bir aracı havuzunuz varsa havuz name parametresini değiştirin.
  • Gerekirse Python sürümünü şirket içinde barındırılan 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.

Özet sekmesinde işlem hattı çalıştırmanızın durumu gösterilir.

Derleme yapıtınızı görüntülemek için Özet sekmesinde yayımlanan bağlantıyı seçin.

Yayımlanan derleme yapıtları 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ü.

Tamamlanmış Python işinin ekran görüntüsü.

Yapıtlar sayfasında yayımlanan derleme yapıtları gösterilir. Yayımlanan derleme yapıtları bağlantısı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ü.

Çalıştır seçin.

Derleme numarası sayfanın en üstünde görüntülenir. Derlemenin ayrıntılarını görmek için derleme numarasını seçin.

İşlem hattı derleme bağlantısının ekran görüntüsü.

Özet sekmesinde işlem hattı çalıştırmanızın durumu gösterilir.

Derleme yapıtınızı indirmek için Derleme yapıtları yayımlandı bölümünden bırakma bağlantısını seçin.

Tamamlanmış Python işinin 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

Bu hızlı başlangıcı tamamladığınızda, oluşturduğunuz Azure DevOps projesini silebilirsiniz.

  1. Projenizde, sayfanın sol alt köşesindeki Proje ayarları dişli simgesini seçin.
  2. Projeye genel bakış sayfasının en altında Sil'i seçin.
  3. Proje adını girin ve Sil'i seçin.

Tebrikler, bir Python uygulaması oluşturup test eden bir işlem hattını başarıyla oluşturdunuz ve çalıştırdunuz. Artık 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'ı kullanabilirsiniz.

Sonraki adımlar

Azure Uygulaması Service'e python web uygulaması dağıtmak için CI/CD kullanın.