CI/CD সেটআপ চেক করে

CI/CD এর জন্য পূর্বশর্ত

একটি পাইপলাইনে চালানোর জন্য চেকগুলি কনফিগার করতে, আপনার চেক অ্যাকাউন্ট এবং Google ক্লাউড প্রকল্প থেকে মূল কনফিগারেশন ইনপুটগুলি পুনরুদ্ধার করুন৷

টার্গেট চেক অ্যাকাউন্ট এবং অ্যাপ

আপনি যখন আপনার CI/CD প্ল্যাটফর্মে চেক চালান, তখন আপনাকে একটি চেক অ্যাকাউন্ট এবং সেই চেক অ্যাকাউন্টের সাথে সংযুক্ত একটি অ্যাপে ফলাফল বরাদ্দ করতে হবে। এটি করার জন্য, আপনার চেক অ্যাকাউন্ট আইডি এবং অ্যাপ আইডি প্রয়োজন হবে।

আপনার অ্যাকাউন্ট আইডির জন্য, আপনার অ্যাকাউন্ট সেটিংস পৃষ্ঠায় যান।

আপনার অ্যাপ আইডির জন্য, আপনার অ্যাপ সেটিংস পৃষ্ঠায় যান।

প্রমাণীকরণ

অটোমেশন সেটআপে চেক ব্যবহার করার সময় একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করা উচিত, যেমন CI/CD। কীভাবে একটি পরিষেবা অ্যাকাউন্ট তৈরি এবং কনফিগার করবেন সে সম্পর্কে আরও তথ্যের জন্য, CLI প্রমাণীকরণ দেখুন।

চেক সিআই/সিডি প্লাগইনগুলির একটি ব্যবহার করলে, প্রমাণপত্রগুলি কীভাবে প্রদান করতে হয় তার জন্য প্লাগইনের ডকুমেন্টেশন দেখুন।

আপনার CI/CD সিস্টেমের মধ্যে চেক CLI ব্যবহার করলে, আপনার JSON কী কনফিগার করতে CI পরিবেশ ভেরিয়েবল ব্যবহার করার পরামর্শ দেওয়া হয়। যেমন:

CHECKS_CREDENTIALS=/my/path/to/serviceaccount.json

একটি CI/CD পাইপলাইনে চালানোর জন্য চেক কনফিগার করুন

চেক নিম্নলিখিত পন্থা সমর্থন করে:

  • CI/CD প্লাগইন চেক করে : চেকগুলি গিটহাব এবং ফাস্টলেন সহ বেশ কয়েকটি CI/CD প্ল্যাটফর্মের জন্য প্রি-বিল্ট প্লাগইন সরবরাহ করে। আরো জন্য পার্শ্ব নেভিগেশন দেখুন.
  • CLI চেক করে : আরও জটিল ওয়ার্কফ্লো সহ দল, অথবা চেক প্রি-বিল্ট প্লাগইন ছাড়াই বিল্ড সিস্টেম ব্যবহার করে, তাদের CI/CD পাইপলাইনে চেক CLI ব্যবহার করতে পারে। বিস্তারিত জানার জন্য চেক সিএলআই ব্যবহার করে সেট আপ এবং চেক সিএলআই ব্যবহার করে ইউনিভার্সাল সেটআপ দেখুন।
  • চেক এপিআই : অত্যন্ত কাস্টমাইজড ওয়ার্কফ্লো সহ দলগুলির জন্য, চেক একটি শক্তিশালী REST API অফার করে। স্ক্যান শুরু করতে, প্রতিবেদনগুলি পুনরুদ্ধার করতে এবং আপনার অনন্য প্রয়োজনীয়তা অনুসারে অভিজ্ঞতাটি তৈরি করতে এটি ব্যবহার করুন। চেক এপিআই ডকুমেন্টেশনে আরও তথ্য খুঁজুন।

চেক CLI ব্যবহার করে সার্বজনীন সেটআপ

আপনার CI/CD প্ল্যাটফর্মের জন্য চেক প্লাগইন বিদ্যমান না থাকলে, আপনি চেক CLI ব্যবহার করতে পারেন। চেক CLI ডেভেলপারদের দ্বারা সরাসরি যেকোন CI/CD প্ল্যাটফর্মে স্ক্রিপ্ট করা যেতে পারে যা স্ক্রিপ্ট এক্সিকিউশন ওয়ার্কফ্লো পদক্ষেপগুলিকে সমর্থন করে।

চেক CLI এর স্ক্রিপ্ট করা যেতে পারে:

  • অ-শূন্য ত্রুটি কোডগুলি শুধুমাত্র তখনই ফেরত দিন যখন নির্দিষ্ট মানদণ্ড পূরণ করা হয়, উদাহরণস্বরূপ, উচ্চ অগ্রাধিকারের সমস্যাগুলি পাওয়া গেলেই একটি ত্রুটি কোড দিয়ে প্রস্থান করুন৷ মনে রাখবেন যে CLI কখনই একটি ত্রুটি কোড ফেরত দেবে না; বিকাশকারীকে স্ক্রিপ্টিং ধাপে ম্যানুয়ালি ত্রুটি কোডগুলি ফেরত দিতে হবে।
  • আরও নমনীয়তার জন্য JSON-এ এর সমস্ত ডেটা আউটপুট করুন।

চেক সিআই/সিডি গিটহাব অ্যাকশনের পরিবর্তে প্রতিটি কমিটে গিটহাব অ্যাকশনে সিএলআই ব্যবহার করার একটি উদাহরণ এখানে দেওয়া হল। যখন চেক অগ্রাধিকার সমস্যাগুলি খুঁজে পায় তখন আমরা একটি ত্রুটি কোড তৈরি করতে আউটপুটকে রূপান্তরিত করছি:

name: Example workflow using Checks
run-name: ${ { github.actor } } is running Checks App Compliance GitHub Action
on: [push]
jobs:
  checks:
    runs-on: ubuntu-latest
    steps:
        uses: actions/checkout@v4
      - name: Checks App Compliance analysis
        run:
          echo 'Starting Checks App Compliance scan...'
          chmod +x ./checks
          ./checks report generate --binary-path=${CHECKS_BINARY_PATH} --app-id=${CHECKS_APP_ID} --account-id=${CHECKS_ACCOUNT_ID} --no-input --json  --wait-and-print-report > checks_results.json
          echo "Wrote App Compliance scan results to checks_results.json"
        env:
            # Replace all inputs with your configurations.
            CHECKS_CREDENTIALS: ${{ secrets.SERVICE_ACCOUNT_JSON }}
            CHECKS_APP_ID: "123456"
            CHECKS_ACCOUNT_ID: "654321"
            CHECKS_BINARY_PATH: "./app_release.apk"
      - name: Read JSON file
        uses: actions/github-script@v6
        with:
            script: |
                const fs = require('fs');
                const json = fs.readFileSync('./checks_results.json', 'utf8');
                const report = JSON.parse(json);

                console.log(`Generated report name: ${report.name}`);
                console.log(`Report console URL: ${report.resultsUri}`);

                const failingChecks = [];
                for (const check of report.checks) {
                    if (check.severity.toString() === 'PRIORITY' && check.state.toString() === 'FAILED') {
                        failingChecks.push(check);
                    }
                }

                if (failingChecks.length > 0) {
                    console.log(`${failingChecks.length} priority issue(s) detected: `);
                    for (const check of failingChecks) {
                        console.log(`Type: ${check.type}. Details: ${JSON.stringify(check)}`);
                    }
                    process.exit(1);
                }

প্রতিক্রিয়া

আপনার কি একটি CI/CD ওয়ার্কফ্লো আছে যা আপনি এই গাইডে যুক্ত দেখতে চান? checks-support@google.com-এ আমাদের জানান।