التحقّق من إعداد مسار التكامل المستمر/التسليم المستمر

المتطلبات الأساسية لمسار التكامل المستمر/التسليم المستمر

لضبط عمليات التحقّق ليتم تنفيذها في مسار، عليك استرداد مدخلات الإعدادات الرئيسية من حسابك على Checks ومشروعك على Google Cloud.

حساب Target Checks والتطبيق

عند تشغيل "عمليات التحقّق" في منصة CI/CD، عليك تعيين النتائج إلى حساب "عمليات التحقّق" وتطبيق ربطته بحساب "عمليات التحقّق" هذا. لإجراء ذلك، ستحتاج إلى معرّف الحساب ومعرّف التطبيق في "الشيكات".

للحصول على رقم تعريف الحساب، انتقِل إلى صفحة إعدادات الحساب.

للحصول على معرّف التطبيق، انتقِل إلى صفحة إعدادات التطبيق.

المصادقة

يجب استخدام حساب خدمة عند استخدام عمليات التحقّق في عملية إعداد مبرمَجة، مثل CI/CD. لمزيد من المعلومات حول كيفية إنشاء حساب خدمة وضبطه، يُرجى الاطّلاع على مصادقة واجهة سطر الأوامر.

في حال استخدام أحد مكوّنات Checks الإضافية الخاصة بعملية التكامل المتواصل/التسليم المتواصل، يُرجى الرجوع إلى مستندات المكوّن الإضافي لمعرفة كيفية تقديم بيانات الاعتماد.

في حال استخدام Checks CLI ضمن نظام CI/CD، يُنصح باستخدام متغيرات بيئة CI لتكوين مفتاح JSON. على سبيل المثال:

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

ضبط عمليات التحقّق لتنفيذها في مسار CI/CD

تتيح عمليات التحقّق الأساليب التالية:

  • التحقّق من إضافات التكامل المستمر/التسليم المستمر: توفّر Checks إضافات مُنشأة مسبقًا للعديد من منصات التكامل المستمر/التسليم المستمر، بما في ذلك GitHub وfastlane. يمكنك الاطّلاع على شريط التنقّل الجانبي للحصول على مزيد من المعلومات.
  • واجهة سطر الأوامر الخاصة بـ Checks: يمكن للفرق التي لديها سير عمل أكثر تعقيدًا أو التي تستخدم نظام إنشاء بدون مكوّن إضافي مسبق الإنشاء خاص بـ Checks استخدام واجهة سطر الأوامر الخاصة بـ Checks في مسار التكامل المستمر/التسليم المستمر. لمزيد من التفاصيل، يُرجى الاطّلاع على الإعداد باستخدام واجهة سطر الأوامر في Checks والإعداد العام باستخدام واجهة سطر الأوامر في Checks.
  • واجهة برمجة التطبيقات Checks: بالنسبة إلى الفِرق التي تستخدم نماذج سير عمل مخصّصة بشكل كبير، توفّر Checks واجهة REST API قوية. يمكنك استخدامها لبدء عمليات الفحص واسترداد التقارير وتخصيص التجربة وفقًا لمتطلباتك الفريدة. يمكنك العثور على مزيد من المعلومات في مستندات Checks API.

الإعداد العام باستخدام واجهة سطر الأوامر (CLI) الخاصة بعمليات التحقّق

إذا لم تكن هناك إضافة Checks لمنصّة CI/CD، يمكنك استخدام Checks CLI. يمكن للمطوّرين كتابة نصوص برمجية مباشرةً لواجهة سطر الأوامر الخاصة بأداة Checks في أي منصة 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.