CI/CD kurulumunu kontrol eder

CI/CD için ön koşullar

Kontrolleri bir işlem hattında çalışacak şekilde yapılandırmak için Kontrol hesabınızdan ve Google Cloud projenizden temel yapılandırma girişlerini alın.

Target Checks hesabı ve uygulaması

CI/CD platformunuzda kontrolleri çalıştırdığınızda sonuçları bir Kontrol hesabı ve bu Kontrol hesabına bağladığınız bir uygulamaya atamanız gerekir. Bunu yapmak için Çekler hesap kimliği ve uygulama kimliğine ihtiyacınız olacak.

Hesap kimliğiniz için Hesap Ayarları sayfanızı ziyaret edin.

Uygulama kimliğiniz için Uygulama Ayarları sayfanızı ziyaret edin.

Kimlik doğrulama

CI/CD gibi bir otomasyon kurulumunda kontroller kullanılırken hizmet hesabı kullanılmalıdır. Hizmet hesabı oluşturma ve yapılandırma hakkında daha fazla bilgi için CLI'yı kimlik doğrulama başlıklı makaleyi inceleyin.

Checks CI/CD eklentilerinden birini kullanıyorsanız kimlik bilgilerinin nasıl sağlanacağıyla ilgili olarak eklentinin belgelerine bakın.

CI/CD sisteminizde Checks CLI'yı kullanıyorsanız JSON anahtarınızı yapılandırmak için CI ortam değişkenlerini kullanmanız önerilir. Örneğin:

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

CI/CD ardışık düzeninde çalışacak şekilde kontrolleri yapılandırma

Kontroller aşağıdaki yaklaşımları destekler:

  • Checks CI/CD eklentileri: Checks, GitHub ve fastlane dahil olmak üzere çeşitli CI/CD platformları için önceden oluşturulmuş eklentiler sunar. Daha fazla bilgi için yan gezinme bölümüne bakın.
  • Checks KSA: Daha karmaşık iş akışlarına sahip veya Checks önceden oluşturulmuş eklentisi olmayan bir derleme sistemi kullanan ekipler, CI/CD ardışık düzenlerinde Checks KSA'yı kullanabilir. Ayrıntılar için Checks CLI'yı kullanarak kurulum ve Checks CLI'yı kullanarak evrensel kurulum başlıklı makaleleri inceleyin.
  • Checks API: Checks, iş akışları son derece özelleştirilmiş olan ekipler için güçlü bir REST API sunar. Tarama başlatmak, rapor almak ve deneyimi benzersiz ihtiyaçlarınıza göre uyarlamak için kullanın. Daha fazla bilgiyi Checks API dokümanlarında bulabilirsiniz.

Checks CLI ile evrensel kurulum

CI/CD platformunuz için Checks eklentisi yoksa Checks CLI'yı kullanabilirsiniz. Checks KSA, geliştiriciler tarafından doğrudan komut dosyası yürütme iş akışı adımlarını destekleyen herhangi bir CI/CD platformuna komut dosyası olarak eklenebilir.

Checks CLI, aşağıdaki işlemleri yapacak şekilde komut dosyası oluşturulabilir:

  • Yalnızca belirli ölçütler karşılandığında sıfır olmayan hata kodları döndürün. Örneğin, yalnızca yüksek öncelikli sorunlar bulunursa hata koduyla çıkın. CLI'nın hiçbir zaman hata kodu döndürmeyeceğini unutmayın. Geliştirici, hata kodlarını komut dosyası oluşturma adımında manuel olarak döndürmelidir.
  • Daha fazla esneklik için tüm verilerini JSON biçiminde çıktı olarak verir.

Aşağıda, Checks CI/CD GitHub Action yerine her kayıtta GitHub Actions'da CLI kullanma örneği verilmiştir. Ayrıca, kontroller öncelikli sorunlar bulduğunda hata kodu oluşturmak için çıkışı da dönüştürüyoruz:

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);
                }

Geri bildirim

Bu kılavuza eklenmesini istediğiniz bir CI/CD iş akışınız var mı? checks-support@google.com adresinden bize bildirin.