Bagikan melalui


Membuat dan menerbitkan aplikasi Python

Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Dalam panduan kilat ini, Anda membuat alur kerja yang menyusun dan menguji aplikasi Python. Anda melihat cara menggunakan Azure Pipelines untuk membangun, menguji, dan menyebarkan aplikasi dan skrip Python sebagai bagian dari sistem integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD).

Prasyarat

Python telah diinstal sebelumnya pada agen yang dihosting Microsoft untuk Linux, macOS, dan Windows. Anda tidak perlu menyiapkan apa pun lagi untuk membangun proyek Python. Untuk melihat versi Python mana yang telah diinstal sebelumnya, lihat Perangkat Lunak.

Produk Persyaratan
Azure DevOps - Proyek Azure DevOps.
- Kemampuan untuk menjalankan pipeline pada agen yang di-host oleh Microsoft. Anda dapat membeli pekerjaan paralel atau Anda dapat meminta tingkat layanan gratis.
- Pengetahuan dasar tentang YAML dan Azure Pipelines. Untuk informasi selengkapnya, lihat Buat pipa pertama Anda.
- Izin:
     - Untuk membuat alur: Anda harus berada di grup Kontributor dan grup harus mengatur izin Buat alur build ke Izinkan. Anggota grup Administrator Proyek dapat mengelola alur.
    - Untuk membuat koneksi layanan: Anda harus memiliki peran Administrator atau Creator untuk koneksi layanan .
GitHub - Akun GitHub.
- Koneksi layanan GitHub untuk mengotorisasi Azure Pipelines.
Produk Persyaratan
Azure DevOps - Proyek Azure DevOps.
- Agen yang dihosting sendiri dengan Python 3.12 atau versi Python lainnya yang terpasang. Untuk membuatnya, lihat Agen yang di-host sendiri.
- Pengetahuan dasar tentang YAML dan Azure Pipelines. Untuk informasi selengkapnya, lihat Buat pipa pertama Anda.
- Izin:
    - Untuk membuat alur: Anda harus berada di grup Kontributor dan grup harus mengatur izin Buat alur build ke Izinkan. Anggota grup Administrator Proyek dapat mengelola alur.
    - Untuk membuat koneksi layanan: Anda harus memiliki peran Administrator atau Creator untuk koneksi layanan .
GitHub - Akun GitHub.
- Koneksi layanan GitHub untuk mengotorisasi Azure Pipelines.

Penting

Prosedur GitHub mungkin mengharuskan Anda untuk mengambil satu atau beberapa tindakan berikut di GitHub:

  • Tandatangan.
  • Otorisasi Azure Pipelines.
  • Mengautentikasi ke organisasi GitHub.
  • Instal aplikasi Azure Pipelines.

Ikuti instruksi untuk menyelesaikan proses yang diperlukan. Untuk informasi selengkapnya, lihat Akses ke repositori GitHub.

Gandakan (fork) kode contoh

Fork sampel repositori Python ke akun GitHub Anda.

  1. Kunjungi repositori python-sample-vscode-flask-tutorial.
  2. Pilih Fork di kanan atas.
  3. Pastikan nama akun GitHub Anda dipilih di bawah Pemilik, dan pilih Buat fork. Fork diberi nama yang sama dengan repositori induk secara default, tetapi Anda dapat menamainya sesuatu yang berbeda.

Buat alur kerja Anda

  1. Di proyek Azure DevOps Anda, pilih Alur dari menu navigasi kiri lalu pilih Alur baru, atau Buat Alur jika alur ini adalah yang pertama dalam proyek.
  2. Pada layar Di mana kode Anda , pilih GitHub sebagai lokasi kode sumber Anda.
  3. Pada layar Pilih repositori , pilih repositori sampel Python fork Anda.
  4. Pada layar Konfigurasikan alur Anda, pilih Alur pemula.

Sesuaikan pipeline Anda

Pada layar Tinjau YAML alur Anda, gantilah konten dari file azure-pipelines.yml yang dihasilkan dengan kode berikut ini. Kode melakukan tindakan berikut pada tiga versi Python yang berbeda:

  1. Menginstal versi dan dependensi Python yang diperlukan.
  2. Paket mengemas artefak ke dalam arsip ZIP.
  3. Mengunggah arsip ke pipeline Anda.
  4. Menjalankan pengujian.
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'

Pada layar Tinjau YAML alur Anda, gantilah konten dari file azure-pipelines.yml yang dihasilkan dengan kode berikut ini. Kode melakukan tindakan berikut:

  1. Menginstal versi dan dependensi Python yang diperlukan.
  2. Paket mengemas artefak ke dalam arsip ZIP.
  3. Mengunggah arsip ke pipeline Anda.
  4. Menjalankan pengujian.

Sesuaikan azure-pipelines.yml agar sesuai dengan konfigurasi proyek Anda.

  • Jika Anda memiliki kumpulan agen yang berbeda, ganti pengganti kumpulan name dengan nama kumpulan Anda atau default.
  • Jika perlu, ubah Python versionSpec ke versi yang diinstal pada agen yang dihost sendiri.
  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'

Jalankan pipeline Anda

Pilih Simpan dan jalankan, lalu pilih Simpan dan jalankan lagi. Anda dapat memilih Pekerjaan di layar Ringkasan untuk melihat pekerjaan Anda beraksi.

Pekerjaan berjalan tiga kali, sekali untuk setiap versi Python yang ditentukan. Ketiga versi dapat berjalan secara paralel pada agen yang berbeda.

Cuplikan layar pekerjaan Python yang telah selesai dengan beberapa versi.

Cuplikan layar pekerjaan Python tunggal yang telah selesai.

Melihat artefak dan hasil pengujian

Untuk melihat artifak build Anda, pilih tautan yang dipublikasikan [N] pada tab Ringkasan.

Cuplikan layar tautan artefak yang telah diterbitkan.

Halaman Artefak menunjukkan artefak build yang telah diterbitkan.

Cuplikan layar artefak bangunan yang diterbitkan.

Tangkapan layar artefak build yang dipublikasikan untuk satu ruang lingkup pekerjaan.

Untuk melihat hasil pengujian, pilih tab Pengujian .

Cuplikan layar hasil pengujian alur.

Pembersihan

Jika Anda sudah selesai menggunakan alur yang Anda buat, Anda dapat menghapusnya.

  1. Pilih Alur dari menu navigasi kiri proyek Anda.

  2. Di daftar alur, arahkan mouse ke atas alur yang Anda buat, pilih ikon Tindakan lainnya di sebelah kanan, lalu pilih Hapus.

    Atau pilih alur, dan pada halaman alur, pilih ikon Tindakan lainnya di kanan atas, lalu pilih Hapus.

  3. Masukkan nama alur, lalu pilih Hapus lagi.

Anda berhasil membuat dan menjalankan alur yang membangun dan menguji aplikasi Python. Anda sekarang dapat menggunakan Azure Pipelines untuk membangun, menguji, dan menyebarkan aplikasi dan skrip Python sebagai bagian dari proses CI/CD Anda.

Langkah selanjutnya