Bagaimana cara meneruskan parameter ke pipa build operasi Azure Dev secara eksternal untuk mengontrol pelaksanaan tugas?

pertanyaan saya adalah Bagaimana cara meneruskan parameter ke pipa build operasi Dev Azure secara eksternal untuk mengontrol pelaksanaan tugas? Untuk menjelaskan secara detail berikut penjelasannya:

Saya memiliki proyek di operasi Dev Azure yang memiliki pipa build yang dikonfigurasi dengan beberapa rangkaian tugas yang melibatkan pembuatan solusi, menghasilkan paket yang dapat diterapkan, dan lain-lain. Biasanya ini dijalankan dengan baik dan bagus tanpa masalah apa pun.

Apa yang ingin saya capai adalah mendeklarasikan variabel pipa dalam definisi pembangunan proyek ini yang dapat saya akses secara eksternal ketika saya mengatakan itu adalah sesuatu seperti aplikasi yang sama sekali berbeda atau aplikasi eksternal seperti ms flow sehingga saya dapat meneruskan nilai ke variabel pipa yang baru dibuat seperti yang dinyatakan di atas dan dengan menggunakan nilai yang disimpan dalam variabel baru ini, saya seharusnya dapat melewati beberapa langkah dalam pipa build dan saya seharusnya hanya dapat menjalankan beberapa langkah.

Izinkan saya menjelaskan dengan sebuah contoh:

  1. Pertimbangkan sebuah proyek bernama A di operasi Dev Azure yang memiliki pipa build yang dikonfigurasi dengan 5 tugas berbeda
  2. Dalam pipeline build yang sama, katakanlah ada variabel pipeline baru yang dibuat yang disebut sebagai flag
  3. Pertimbangkan aplikasi eksternal seperti ms flow yang memicu proyek pipa build A di langkah 1
  4. Saya harus bisa meneruskan nilai ke variabel bendera yang dibuat di langkah 2 menggunakan aliran di langkah ke-3 seperti benar atau salah.
  5. Dengan menggunakan nilai flag yang diteruskan ke pipeline build dari ms flow, tugas-tugas di pipeline build harus dijalankan, yaitu jika nilai yang masuk melalui aplikasi eksternal ke pipeline build adalah true maka ia harus mengeksekusi hanya 3, 4 tugas di pipeline build dan lewati false lainnya harus menjalankan semua langkah dalam pipeline build di operasi Dev Azure.

Pertanyaannya adalah bagaimana mencapai atau mewujudkan perilaku seperti ini?

Tolong bantu saya dalam menyelesaikan masalah ini?

Jika meneruskan nilai ke variabel tidak memungkinkan, bisakah Anda memberi tahu saya cara mencapai perilaku melewatkan di pipa build operasi Dev biru yang dipicu dari aplikasi eksternal seperti ms flow?


person Chaitanya N G    schedule 26.09.2019    source sumber


Jawaban (2)


Karena ada REST API yang dapat meneruskan parameter saat mengantri build dan Anda dapat menentukan kondisi khusus di pipeline build Anda, ada solusinya. Menurut dokumentasi REST API, Anda dapat mengonversinya menjadi skrip Powershell seperti di bawah ini.

Param(
       [string]$collectionurl = "https://dev.azure.com/{orgname}",
       [string]$project = "{projectname}",
       [string]$user = "{useraccount}",
       [string]$token = "{yourPAT}"
)

$base64AuthInfo= [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user, $token)))

$defurl = "$collectionurl/$project/_apis/build/builds?api-version=5.0"
$json = '{"parameters":  "{\"AnotherParameter\":  \"true\"}","definition":  {"id":  "{definitionId}"}}'
$updatedef = Invoke-RestMethod -Uri $defurl -Method Post -Body $json -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

Anda dapat membuat tiga alur build. Pipeline pertama adalah pipeline utama Anda yang memiliki 5 tugas berbeda. Anda dapat mengatur kondisi khusus seperti di bawah ini. Artinya, hanya jika nilai AnotherParameter benar, tugas akan dijalankan.

masukkan deskripsi gambar di sini

Pipa kedua dan pipa ketiga adalah pipa pemicu. Di alur kedua, Anda dapat menggunakan skrip PowerShell untuk menyetel AnotherParameter sebagai salah dan di alur ketiga, menyetel nilainya sebagai benar.

Kemudian atur pipeline kedua dipicu oleh aplikasi eksternal dan pipeline ketiga dipicu oleh repo Anda atau yang lain.

Ketika aplikasi eksternal memicu alur kedua, nilai AnotherParameter akan salah dan beberapa tugas di alur pertama tidak akan berjalan.

Ketika alur ketiga dipicu oleh penerapan Anda, nilai AnotherParameter akan menjadi benar dan semua tugas di alur pertama akan berjalan seperti yang diharapkan.

person Frank Wang-MSFT    schedule 30.09.2019
comment
Terima kasih atas masukan dan waktunya. Saya berhasil melangkah lebih jauh tanpa masalah apa pun, terima kasih banyak. Solusinya telah membebaskan saya. - person Chaitanya N G; 01.10.2019

Anda dapat memanggil Azure DevOps REST API dan meneruskan parameter dalam permintaan. Lihat postingan ini untuk informasi lebih lanjut: Mulai a membangun dan meneruskan variabel melalui VSTS Rest API

Jika Anda ingin menambahkan ketentuan ke tugas atau alur build, lihat dokumentasi untuk ketentuan: Kondisi - Azure Pipelines

person point    schedule 26.09.2019