আমি এটা মাধ্যমে প্রয়োগ করা যেতে পারে মনে needs
এবং resource_group
কীওয়ার্ড এবং gitlab API- টি।
প্রতিটি কাজ পাইপলাইন আইডিটি গ্রহণ করে যা এটি হিসাবে এটি predefined-variable
। আপনি যদি গিটল্যাব এপি ব্যবহার করেন তবে আপনি পাইপলাইনে অন্যান্য কাজের স্থিতি দেখতে পাবেন। আপনি যদি এই স্থিতি needs
এবং resource_group
কীওয়ার্ডগুলি ব্যবহার করতে পারেন তবে আমি মনে করি আপনি যা করতে চান তা অর্জন করতে পারেন। আরও তথ্যের জন্য নীচের কোডের বর্ণনা এবং তার মন্তব্য দেখুন।
stages:
- ready
- build
job1:
stage: build
needs: [starting_signal]
script:
- sleep 10 && echo "job1"
job2:
stage: build
needs: [starting_signal]
script:
- sleep 20 && echo "job2"
job3:
stage: build
needs: [starting_signal]
script:
- sleep 30 && echo "job3"
starting_signal:
stage: ready
script:
- # TODO: You need to implement it using the GitLab API.
- # The starting condition for "job1-3" is
- # that this `starting_signal` job finished successfully.
- # And the condition that ends with the success of this job
- # is that `traffic_light` becomes running.
traffic_light:
stage: ready
resource_group: traffic_light
script:
- # TODO: You need to implement it using the GitLab API.
- # The end condition for `traffic_light` is
- # the end of job1-3 execution.
- # In other words, this job must be checked and waited
- # through gitlab api until job 1,2,3 is finished.
- # Since this job locks the execution of a `traffic_light` job
- # in another pipeline, the `starting_signal` job in another
- # pipeline does not succeed.
(আমি নিজে এটি পরীক্ষা করিনি, সুতরাং এই পদ্ধতির একটি পর্যালোচনা প্রয়োজন))
Referenecs: