सीआई/सीडी सेटअप की जांच करता है

सीआई/सीडी के लिए ज़रूरी शर्तें

किसी पाइपलाइन में Checks को चलाने के लिए, अपने Checks खाते और Google Cloud प्रोजेक्ट से कॉन्फ़िगरेशन के मुख्य इनपुट पाएं.

Target Checks खाते और ऐप्लिकेशन की जांच करता है

अपने CI/CD प्लैटफ़ॉर्म में Checks चलाने के लिए, आपको नतीजों को Checks खाते और उस ऐप्लिकेशन को असाइन करना होगा जिसे आपने उस Checks खाते से कनेक्ट किया है. इसके लिए, आपको Checks खाता आईडी और ऐप्लिकेशन आईडी की ज़रूरत होगी.

अपने खाता आईडी के लिए, खाता सेटिंग पेज पर जाएं.

अपने ऐप्लिकेशन आईडी के लिए, ऐप्लिकेशन की सेटिंग वाले पेज पर जाएं.

पुष्टि करना

ऑटोमेशन सेटअप, जैसे कि CI/CD में जांचों का इस्तेमाल करते समय, सेवा खाते का इस्तेमाल किया जाना चाहिए. सेवा खाता बनाने और उसे कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, सीएलआई की पुष्टि करना लेख पढ़ें.

अगर Checks CI/CD प्लगिन में से किसी एक का इस्तेमाल किया जा रहा है, तो क्रेडेंशियल देने का तरीका जानने के लिए, प्लगिन का दस्तावेज़ पढ़ें.

अगर CI/CD सिस्टम में Checks CLI का इस्तेमाल किया जा रहा है, तो हमारा सुझाव है कि JSON कुंजी को कॉन्फ़िगर करने के लिए, CI एनवायरमेंट वैरिएबल का इस्तेमाल करें. उदाहरण के लिए:

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

CI/CD पाइपलाइन में जांच चलाने के लिए, जांचों को कॉन्फ़िगर करना

जांच की सुविधा में इन तरीकों का इस्तेमाल किया जाता है:

  • CI/CD प्लगिन की जांच करता है: Checks, GitHub और fastlane जैसे कई CI/CD प्लैटफ़ॉर्म के लिए, पहले से बने प्लगिन उपलब्ध कराता है. ज़्यादा जानकारी के लिए, साइड नेविगेशन देखें.
  • Checks CLI: जिन टीमों के वर्कफ़्लो ज़्यादा जटिल होते हैं या जो Checks के पहले से बने प्लगिन के बिना किसी बिल्ड सिस्टम का इस्तेमाल करती हैं वे अपनी सीआई/सीडी पाइपलाइन में Checks CLI का इस्तेमाल कर सकती हैं. ज़्यादा जानकारी के लिए, Checks CLI का इस्तेमाल करके सेट अप करना और Checks CLI का इस्तेमाल करके यूनिवर्सल सेटअप करना देखें.
  • Checks API: जिन टीमों के पास ज़रूरत के मुताबिक बनाए गए वर्कफ़्लो होते हैं उनके लिए, Checks एक मज़बूत REST API उपलब्ध कराता है. इसका इस्तेमाल स्कैन शुरू करने, रिपोर्ट वापस पाने, और अपनी खास ज़रूरतों के हिसाब से अनुभव को बेहतर बनाने के लिए करें. ज़्यादा जानकारी के लिए, Checks API से जुड़ा दस्तावेज़ देखें.

Checks CLI का इस्तेमाल करके यूनिवर्सल सेटअप करना

अगर आपके CI/CD प्लैटफ़ॉर्म के लिए Checks प्लगिन मौजूद नहीं है, तो Checks CLI का इस्तेमाल किया जा सकता है. डेवलपर, Checks CLI को सीधे तौर पर किसी भी CI/CD प्लैटफ़ॉर्म में स्क्रिप्ट कर सकते हैं. यह प्लैटफ़ॉर्म, स्क्रिप्ट को लागू करने के वर्कफ़्लो के चरणों के साथ काम करता है.

Checks CLI को स्क्रिप्ट किया जा सकता है, ताकि:

  • गड़बड़ी के ऐसे कोड दिखाएं जो शून्य नहीं हैं. हालांकि, ऐसा सिर्फ़ तब करें, जब कुछ शर्तें पूरी होती हों. उदाहरण के लिए, गड़बड़ी का कोड सिर्फ़ तब दिखाएं, जब ज़्यादा ज़रूरी समस्याएं मिली हों. ध्यान दें कि सीएलआई कभी भी गड़बड़ी का कोड नहीं दिखाता. डेवलपर को स्क्रिप्टिंग के चरण में, गड़बड़ी के कोड मैन्युअल तरीके से दिखाने होंगे.
  • ज़्यादा सुविधा के लिए, इसके सभी डेटा को JSON में आउटपुट करें.

यहां हर कमिट पर GitHub Actions में सीएलआई का इस्तेमाल करने का उदाहरण दिया गया है. इसमें Checks CI/CD GitHub Action का इस्तेमाल नहीं किया गया है. हम आउटपुट को भी बदल रहे हैं, ताकि जब जांच में प्राथमिकता वाली समस्याएं मिलें, तो गड़बड़ी का कोड जनरेट हो:

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 पर बताएं.