Saya memiliki banyak pekerjaan yang bekerja dengan satu sumber daya eksternal (server). Pekerjaan pertama menyebarkan aplikasi ke lingkungan, menjalankan tes kedua di lingkungan ini, melakukan pengujian integrasi ketiga di lingkungan ini.
Saya tahu ada opsi grup Sumber Daya . Tapi itu hanya mengunci pekerjaan. Jika dua pipa berjalan bersamaan saya harus menjalankan job1
, job2
, job3
dari pipa pertama dan hanya ketika rilis pipa sumber pertama - pipa kedua dapat memulai jobs1-3
. Apakah ada cara untuk mencapai ini? Ada pekerjaan lain dalam pipa - mereka harus bekerja secara bersamaan.
Saya pikir itu dapat dilaksanakan melalui
needs
danresource_group
kata kunci dan gitlab API.Setiap pekerjaan menerima id pipa yang menjadi miliknya
predefined-variable
. Jika Anda menggunakan api gitlab, Anda dapat melihat status pekerjaan lain di dalam pipa. Jika Anda dapat menggunakan status ini,needs
danresource_group
kata kunci saya pikir Anda dapat mencapai apa yang Anda inginkan. Lihat deskripsi kode di bawah ini dan komentarnya untuk lebih jelasnya.(Saya tidak mengujinya sendiri, jadi metode ini perlu ditinjau.)
Referenecs:
sumber
traffic_light
pekerjaan saya harus menunggu penyelesaian pelaksanaan job1-3 dalam pipa bersamaan. Apa yang saya tidak suka dalam pendekatan ini - menit Anda akan terbuang untuk memeriksa status pipa bersamaan.traffic_light
menggunakantags
kata kunci. Banyak vendor cloud saat ini menyediakan contoh tingkat gratis, yang cukup untuk menjalankan pekerjaan tunggu sederhana sepertitraffic_light
.