मेरे पास 2 अलग-अलग रिपॉजिटरी में 2 पाइपलाइन हैं:

  • repo.git में lib.yml एक पुन: उपयोग करने योग्य लाइब्रेरी आर्टिफैक्ट ए (इसके लिए विभिन्न नोड्स पर कई चरणों की आवश्यकता है) का उत्पादन करता है और इसमें एक चरण भी होता है जो ए के उत्पादन के बाद ऑटोटेस्ट चलाता है।
  • app.yml app.git में एक एप्लिकेशन बनाता है और परीक्षण करता है जिसे बनाने के लिए A की आवश्यकता होती है।

App.yml में मैं lib.yml को डुप्लिकेट किए बिना A को एकीकृत करना चाहता हूं। मुझे बताया गया था कि टेम्प्लेट एक समाधान हैं, लेकिन मैं इतना निश्चित नहीं हूं। इससे पहले कि मैं वांछित आर्टिफैक्ट का उपभोग कर सकूं, lib.yml के कई चरण चलने चाहिए। जॉब टेम्प्लेट का उपयोग केवल दोनों पाइपलाइनों को जटिल करेगा और पाइपलाइन इंटर्नल पर निर्भरता पैदा करेगा। app.yml को यह नहीं पता होना चाहिए कि lib.yml A कैसे बनाता है।

दस्तावेज़ों से परामर्श करने के बाद मुझे लगता है कि एक पाइपलाइन संसाधन मुझे जो चाहिए वह करीब है। लेकिन मैं पूरी तरह समझ नहीं पा रहा हूं कि यह कैसे काम करता है। आइए मान लें कि हम शाखा बी पर lib.yml से आर्टिफैक्ट ए चाहते हैं।

  1. क्या app.yml शाखा B के नवीनतम उपलब्ध आर्टिफैक्ट ए का उपयोग करेगा या यह बी पर lib.yml को किक करेगा?

  2. क्या app.yml को बताने का कोई तरीका है: यदि उपलब्ध हो तो शाखा B के लिए lib.yml के नवीनतम A का उपयोग करें, अन्यथा B पर lib.yml चलाएँ और A के तैयार होने की प्रतीक्षा करें?

0
Richard W 24 नवम्बर 2020, 12:11

1 उत्तर

सबसे बढ़िया उत्तर

आप, आप सही हैं - संसाधन पाइपलाइनों को आपके लिए एक काम करना चाहिए।

और app.yml चलाने के लिए आपके पास इस तरह sth होना चाहिए:

resources:
  pipelines:
  - pipeline: hadar
    source: kmadof.hadar
    trigger:
      branches:
        - B

और बस उपयोग करें:

- download: hadar

शाखा बी की पाइपलाइन से नवीनतम आर्टिफैक्ट प्राप्त करने के लिए।

आप अपने app.yaml मैनुअल को चलाने वाली पाइपलाइन का चयन भी कर सकते हैं और आर्टिफैक्ट का चयन कर सकते हैं:

enter image description here

enter image description here

enter image description here

और - download: hadar को सही आर्टिफैक्ट भी मिलता है।

इसलिए

  1. app.yml शाखा बी के नवीनतम उपलब्ध आर्टिफैक्ट ए का उपयोग करेगा।
  2. यदि आप app.yaml को lib.yaml को ट्रिगर करना चाहते हैं और फिर lib.yaml से आर्टिफैक्ट प्राप्त करना चाहते हैं तो यह बॉक्स से बाहर की कार्यक्षमता का उपयोग करना मुश्किल और संभव नहीं होगा। तो app.yaml ट्रिगर un lib.yaml और lib.yaml से कलाकृतियों की प्रतीक्षा करने के लिए बॉक्स तरीका नहीं है। और यदि आपका ऐप यमल रिसोर्स पाइपलाइन ट्रिगर के अलावा किसी अन्य ट्रिगर द्वारा ट्रिगर किया जाएगा तो यह शाखा बी के नवीनतम उपलब्ध आर्टिफैक्ट ए का उपयोग करेगा।
1
Krzysztof Madej 24 नवम्बर 2020, 13:00