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
- Depo oluşturabileceğiniz bir GitHub hesabı. Ücretsiz bir GitHub hesabı oluşturun.
- Bir Azure DevOps kuruluşu. Ücretsiz bir tane oluşturun.
- Azure DevOps projesi. Azure DevOps Proje Oluşturma Sihirbazı'nı kullanarak bir proje oluşturun.
- Microsoft tarafından barındırılan aracılarda işlem hatlarını çalıştırma özelliği. Paralel işlerin ücretsiz verilmesini istemeniz veya paralel bir iş satın almanız gerekir.
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.
- Depo oluşturabileceğiniz bir GitHub hesabı. Ücretsiz bir GitHub hesabı oluşturun.
- Bir Azure DevOps kuruluşu. Ücretsiz bir tane oluşturun.
- Azure DevOps projesi. Azure DevOps Proje Oluşturma Sihirbazı'nı kullanarak bir proje oluşturun.
- Şirket içinde barındırılan bir aracı. Bir aracı oluşturmak için bkz . Şirket içinde barındırılan aracılar.
- Python, şirket içinde barındırılan aracınıza yüklenir. Aracınıza Python yüklemek için bkz . UsePythonVersion.
Örnek kodu çatallayın
Örnek Python deposunu GitHub hesabınıza çatal oluşturun.
- python-sample-vscode-flask-tutorial deposuna gidin.
- Sayfanın sağ üst köşesindeki Çatal'ı seçin.
- 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
- Azure DevOps projenizde İşlem Hatları İşlem Hattı> Oluştur'u ve ardından kaynak kodunuzun konumu olarak GitHub'ı seçin.
- Depo seçin ekranında, çatallanmış örnek deponuzu seçin.
- İş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.
Yapıtlar sayfasında yayımlanan derleme yapıtları gösterilir.
Yapıtlar sayfasında yayımlanan derleme yapıtları gösterilir.
Test sonuçlarını görüntülemek için Testler sekmesini seçin.
Ç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.
Ö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.
Test sonuçlarını görüntülemek için Testler sekmesini seçin.
Temizleme
Bu hızlı başlangıcı tamamladığınızda, oluşturduğunuz Azure DevOps projesini silebilirsiniz.
- Projenizde, sayfanın sol alt köşesindeki Proje ayarları dişli simgesini seçin.
- Projeye genel bakış sayfasının en altında Sil'i seçin.
- 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.