Menjalankan alur dengan lingkungan Anaconda
Azure DevOps
Pelajari cara menyiapkan dan menggunakan Anaconda dengan Python di alur Anda. Anaconda adalah distribusi Python untuk ilmu data dan pembelajaran mesin.
Memulai
Ikuti petunjuk ini untuk menyiapkan alur untuk contoh aplikasi Python dengan lingkungan Anaconda.
Masuk ke organisasi Azure DevOps Anda dan arahkan ke proyek Anda.
Dalam proyek Anda, arahkan ke halaman Alur. Lalu, pilih tindakan untuk membuat alur baru.
Menelusuri langkah-langkah wizard dengan terlebih dahulu memilih GitHub sebagai lokasi kode sumber Anda.
Anda dapat diarahkan ke GitHub untuk masuk. Jika demikian, masukkan informasi masuk GitHub Anda.
Saat daftar repositori muncul, pilih repositori sampel Anaconda Anda.
Azure Pipelines akan menganalisis kode di repositori Anda dan mendeteksi file yang ada
azure-pipelines.yml
.Pilih Jalankan.
Menjalankan baru sudah dimulai. Tunggu sampai eksekusi selesai.
Tip
Untuk membuat perubahan pada file YAML seperti yang dijelaskan dalam topik ini, pilih alur di halaman Alur , lalu Edit azure-pipelines.yml
file.
Menambahkan conda ke jalur sistem Anda
Pada agen yang dihosting, conda dibiarkan PATH
secara default untuk menjaga versi Python-nya agar tidak bertentangan dengan versi lain yang diinstal. task.prependpath
Perintah agen akan membuatnya tersedia untuk semua langkah berikutnya.
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add conda to PATH
Membuat lingkungan
Dari argumen baris perintah
Perintah conda create
akan membuat lingkungan dengan argumen yang Anda berikan.
- bash: conda create --yes --quiet --name myEnvironment
displayName: Create Anaconda environment
Dari YAML
Anda dapat memeriksa environment.yml
file ke repositori yang menentukan konfigurasi untuk lingkungan Anaconda.
- script: conda env create --quiet --file environment.yml
displayName: Create Anaconda environment
Catatan
Jika Anda menggunakan agen yang dihost sendiri dan tidak menghapus lingkungan di akhir, Anda akan mendapatkan kesalahan pada build berikutnya karena lingkungan sudah ada. Untuk mengatasinya --force
, gunakan argumen: conda env create --quiet --force --file environment.yml
.
Catatan
Jika Anda menggunakan agen yang dihost sendiri yang berbagi penyimpanan, dan menjalankan pekerjaan secara paralel menggunakan lingkungan Anaconda yang sama, mungkin ada bentrokan antara lingkungan tersebut.
Untuk mengatasinya --name
, gunakan argumen dan pengidentifikasi unik sebagai nilai argumen, seperti perangkaian dengan $(Build.BuildNumber)
variabel build.
Menginstal paket dari Anaconda
YAML berikut menginstal scipy
paket di lingkungan conda bernama myEnvironment
.
- bash: |
source activate myEnvironment
conda install --yes --quiet --name myEnvironment scipy
displayName: Install Anaconda packages
Menjalankan langkah-langkah alur di lingkungan Anaconda
Catatan
Setiap langkah build berjalan dalam prosesnya sendiri.
Saat Anda mengaktifkan lingkungan Anaconda, Anaconda akan mengedit PATH
dan membuat perubahan lain pada prosesnya saat ini.
Oleh karena itu, lingkungan Anaconda harus diaktifkan secara terpisah untuk setiap langkah.
- bash: |
source activate myEnvironment
python -m pytest --junitxml=junit/unit-test.xml
displayName: pytest
- task: PublishTestResults@2
inputs:
testResultsFiles: 'junit/*.xml'
condition: succeededOrFailed()
Tanya Jawab Umum
Mengapa saya mendapatkan kesalahan "Izin ditolak"?
Di MacOS yang dihosting, pengguna agen tidak memiliki kepemilikan direktori tempat Miniconda diinstal. Untuk perbaikan, lihat tab "MacOS yang dihosting" di bawah Tambahkan conda ke jalur sistem Anda.
Mengapa build saya berhenti merespons pada langkah conda create
atau conda install
?
Jika Anda lupa melewati --yes
, conda akan berhenti dan menunggu interaksi pengguna.
Mengapa skrip saya di Windows berhenti setelah mengaktifkan lingkungan?
Di Windows, activate
adalah skrip Batch. Anda harus menggunakan call
perintah untuk melanjutkan menjalankan skrip Anda setelah mengaktifkan.
Lihat contoh penggunaan call
dalam alur.