CodeBuild - AWS पाइपलाइन में कई इनपुट कलाकृतियों


12

मैं एक एडब्ल्यूएस कोडप्लाइन बना रहा हूं जो दो स्रोत रिपॉजिटरी पर निर्भर करता है। यदि 'CodeBuild' कदम कई इनपुट कलाकृतियों के साथ निर्दिष्ट है, तो आपको त्रुटि मिलती है .. declares 2 input artifacts which is more than the maximum count:। CodeBuild के लिए डॉक्यूमेंटेशन की सख्त आवश्यकता है, केवल एक ही इनपुट आर्टवर्क।

दूसरी ओर, लम्बदा के पास यह सीमा नहीं है। मैं एक तरह से देख रहा हूं कि कैसे एक लैम्ब्डा दो कलाकृतियों को एक एकल में "मर्ज" कर सकता है जिसे मैं कोडबॉडी को पास कर सकता हूं। दुर्भाग्य से, इस विषय पर जानकारी काफी सीमित है।

क्या किसी के पास वर्किंग कोडपिपलाइन लैंबडा है जो दो कलाकृतियों को एक में मिला देगा?

यहाँ छवि विवरण दर्ज करें

नोट : कलाकृतियों का उपयोग कैसे करें के बारे में प्रलेखन ।

जवाबों:


6

हमारे पास बिल्कुल यही समस्या है - हमारे बिल्ड स्टेज को दो अलग-अलग स्थानों से जानकारी का उपयोग करने की आवश्यकता है।

इसे सामान्य तरीके से हल करने के लिए, मैंने दो सामान्य उद्देश्य लैंबडास बनाए हैं - एक जो कलाकृतियों को मर्ज करेगा, और एक वह जो एक कलाकृतियों से विशिष्ट फ़ाइलों को निकालेगा। दोनों मामलों में एक नई कलाकृति बनाई जाती है जिसे बाद के कोडपिपलीन चरण में पारित किया जा सकता है।

Https://github.com/tooltwist/codepipeline-artifact-munge देखें

यदि यह आपकी सटीक आवश्यकता को पूरा नहीं करता है, तो आपको जो कुछ भी करने की ज़रूरत है उसे करना आसान होना चाहिए।


बहुत बढ़िया काम, फिलिप, इस लैम्ब्डा को साझा करने के लिए धन्यवाद।
रोमनिंश

4

मैंने वास्तव में कोड-कोड में रिपॉजिटरी को सीधे क्लोन करके समस्या का हल किया है:

GitHub टोकन पास करें:

      - { Name: GITHUB_TOKEN, Value: {Ref: GitHubToken } }
      - { Name: GITHUB_BRANCH, Value: {Ref: GitHubBranch } }

# इंस्टॉल स्टेप में एक्जिट गिट क्लोन:

      - git clone --single-branch --depth=1 -b $GITHUB_BRANCH https://gitorgname:$GITHUB_TOKEN@github.com/gitorgname/reponame.git  src/reponame

मैंने पाया कि इस समाधान को लागू करना आसान है, लैंबडास पर भरोसा नहीं करता है और भले ही दो पुल करता है, काफी मज़बूती से काम करता है।


वास्तव में आप कहां - {नाम ...} डालते हैं?
एलेक्स आर

मैं क्लाउडफॉर्म के माध्यम से CodeBuild बनाता हूं, लेकिन यह एक पर्यावरण चर है जिसे आप कंसोल के माध्यम से भी निर्दिष्ट कर सकते हैं।
रोमेनिन्श

2

4 सितंबर 2018 तक अमेज़न ने कई इनपुट स्रोतों के लिए समर्थन जोड़ा:

https://aws.amazon.com/about-aws/whats-new/2018/08/aws-codebuild-adds-ability-to-create-build-projects-with-multiple-input-sources-and-output- कलाकृतियों /

से प्रलेखन :

{
"name": "sample-project",
"source": {
  "type": "S3",
  "location": "bucket/sample.zip"
},
"secondarySources": [
  {
    "type": "CODECOMMIT",
    "location": "https://git-codecommit.us-west-2.amazonaws.com/v1/repos/repo"
    "sourceIdentifier": "source1"
  },
  {
    "type": "GITHUB",
    "location": "https://github.com/awslabs/aws-codebuild-jenkins-plugin"
    "sourceIdentifier": "source2"
  }
],

version: 0.2

phases:
  build:
    commands:
      - cd $CODEBUILD_SRC_DIR_source1
      - touch file1
      - cd $CODEBUILD_SRC_DIR_source2
      - touch file2

artifacts:
  secondary-artifacts:
    artifact1:
      base-directory: $CODEBUILD_SRC_DIR_source1
      files:
        - file1
    artifact2:
      base-directory: $CODEBUILD_SRC_DIR_source2
      files:
        - file2

-1

आप CodeBuild की समीक्षा कर सकते हैं। BuildScpec फ़ाइल को CodeBuild प्रोजेक्ट में रखा जा सकता है।कोडबिल्ड प्रोजेक्ट


3
मैं यह देखने में विफल हूं कि यह सवाल का जवाब कैसे देता है।
तेंसीबाई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.