কোড বিল্ড - এডাব্লুএস পাইপলাইনে একাধিক ইনপুট শিল্পকর্ম


12

আমি একটি এডাব্লুএস কোড পাইপলাইন তৈরি করছি যা দুটি উত্সের সংগ্রহস্থলের উপর নির্ভর করে। 'CodeBuild' পদক্ষেপ একাধিক ইনপুট নিদর্শন সঙ্গে উল্লেখ করা হয়, তাহলে আপনি ভুল পান: .. declares 2 input artifacts which is more than the maximum count। কোড বিল্ডের জন্য কেবলমাত্র একটি একক ইনপুট আর্টিফ্যাক্ট থাকার জন্য ডকুমেন্টেশনের একটি কঠোর প্রয়োজনীয়তা রয়েছে।

অন্যদিকে লাম্বদাসের এই সীমাবদ্ধতা নেই। আমি এমন একটি উপায় খুঁজছিলাম যে কোনও ল্যাম্বদা কীভাবে দুটি শিল্পকর্মকে "একীভূত" করতে পারে যা আমি তখন কোডবিল্ডে পাস করতে পারি। দুর্ভাগ্যক্রমে, এই বিষয়ে তথ্য যথেষ্ট সীমাবদ্ধ।

কারও কাছে কি একটি কার্যকরী কোডপাইলাইন লাম্বডা রয়েছে যা দুটি শিল্পকলা একটিতে একীভূত করবে?

এখানে চিত্র বর্ণনা লিখুন

দ্রষ্টব্য : কীভাবে নিদর্শনগুলিতে অ্যাক্সেস করবেন সে সম্পর্কে ডকুমেন্টেশন ।

উত্তর:


6

আমাদের ঠিক একই সমস্যা হয়েছিল - আমাদের বিল্ড স্টেজের দুটি পৃথক অবস্থানের তথ্য ব্যবহার করা দরকার।

জেনেরিক পদ্ধতিতে এটি সমাধান করার জন্য, আমি দুটি সাধারণ উদ্দেশ্যে লাম্বডাস তৈরি করেছি - একটি যা শিল্পকর্মগুলিকে একীভূত করবে, এবং একটি যা একটি শিল্পী থেকে নির্দিষ্ট ফাইলগুলি বের করবে। উভয় ক্ষেত্রেই একটি নতুন শৈল্পিক তৈরি করা হয় যা পরবর্তী কোডপাইলাইন পর্যায়ে যেতে পারে।

Https://github.com/tooltwist/codepipline-artifact-munge দেখুন

যদি এটি আপনার যথাযথ প্রয়োজনীয়তা পূরণ না করে তবে আপনার যা প্রয়োজন তা করার জন্য টুইঙ্ক করা যথেষ্ট সহজ হওয়া উচিত।


ফিলিপ, দুর্দান্ত ল্যাম্বদা ভাগ করে নেওয়ার জন্য ধন্যবাদ।
রোমানহংশ

4

আমি সরাসরি কোডবিল্ডে সংগ্রহস্থল ক্লোন করে সমস্যার সমাধান করেছি:

গিটহাব টোকেন পাস করুন:

      - { 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

আমি দেখেছি যে এই সমাধানটি কার্যকর করা সহজ, লাম্বডাসের উপর নির্ভর করে না এবং এমনকি দুটি টান সঞ্চালন করলেও বেশ নির্ভরযোগ্যভাবে কাজ করে।


আপনি ঠিক কোথায় রাখেন - {নাম ...}?
অ্যালেক্স আর

আমি ক্লাউডফর্মেশনের মাধ্যমে কোডবিল্ড তৈরি করি তবে এটি একটি পরিবেশের পরিবর্তনশীল যা আপনি কনসোলের মাধ্যমেও নির্দিষ্ট করতে পারেন।
রোমানসংশ

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

আপনি কোডবিল্ড পর্যালোচনা করতে পারেন। বিল্ডস্কিপেক ফাইলটি কোডবিল্ড প্রকল্পে রাখা যেতে পারে।কোড বিল্ড প্রকল্প


3
আমি কীভাবে এই প্রশ্নের উত্তর দিয়েছি তা দেখতে ব্যর্থ।
তেনসিবাই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.