Sprawdzanie konfiguracji CI/CD

Wymagania wstępne dotyczące CI/CD

Aby skonfigurować uruchamianie testów w potoku, pobierz kluczowe dane wejściowe konfiguracji z konta usługi Checks i projektu Google Cloud.

Sprawdź konto i aplikację Target

Gdy uruchamiasz weryfikacje na platformie CI/CD, musisz przypisać wyniki do konta Weryfikacji i aplikacji połączonej z tym kontem. Aby to zrobić, potrzebujesz identyfikatora kontaidentyfikatora aplikacji w usłudze Checks.

Identyfikator konta znajdziesz na stronie Ustawienia konta.

Identyfikator aplikacji znajdziesz na stronie Ustawienia aplikacji.

Uwierzytelnianie

Konto usługi należy używać, gdy korzystasz z usługi Checks w konfiguracji automatyzacji, takiej jak CI/CD. Więcej informacji o tworzeniu i konfigurowaniu konta usługi znajdziesz w artykule Uwierzytelnianie interfejsu CLI.

Jeśli używasz jednego z wtyczek Checks CI/CD, zapoznaj się z dokumentacją wtyczki, aby dowiedzieć się, jak podać dane logowania.

Jeśli używasz interfejsu CLI Checks w systemie CI/CD, zalecamy używanie zmiennych środowiskowych CI do konfigurowania klucza JSON. Na przykład:

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

Konfigurowanie sprawdzania do uruchamiania w potoku CI/CD

Sprawdzanie obsługuje te metody:

  • Wtyczki CI/CD do sprawdzania: usługa Checks udostępnia gotowe wtyczki do kilku platform CI/CD, w tym GitHub i fastlane. Więcej informacji znajdziesz w sekcji nawigacji bocznej.
  • Interfejs wiersza poleceń Checks: zespoły z bardziej złożonymi przepływami pracy lub korzystające z systemu kompilacji bez gotowej wtyczki Checks mogą używać interfejsu wiersza poleceń Checks w potoku CI/CD. Więcej informacji znajdziesz w artykułach Konfigurowanie za pomocą interfejsu wiersza poleceń ChecksKonfigurowanie uniwersalne za pomocą interfejsu wiersza poleceń Checks.
  • Interfejs Checks API: zespołom z wysoce spersonalizowanymi przepływami pracy oferuje on zaawansowany interfejs REST API. Możesz go używać do rozpoczynania skanowania, pobierania raportów i dostosowywania działania usługi do swoich potrzeb. Więcej informacji znajdziesz w dokumentacji interfejsu Checks API.

Konfiguracja uniwersalna za pomocą interfejsu wiersza poleceń Checks

Jeśli w przypadku Twojej platformy CI/CD nie ma wtyczki Checks, możesz użyć interfejsu wiersza poleceń Checks. Deweloperzy mogą bezpośrednio tworzyć skrypty dla interfejsu wiersza poleceń Checks na dowolnej platformie CI/CD, która obsługuje kroki przepływu pracy związane z wykonywaniem skryptów.

Narzędzie Checks CLI może być używane w skryptach do:

  • Zwracaj kody błędów inne niż zero tylko wtedy, gdy zostaną spełnione określone kryteria, np. kończ działanie z kodem błędu tylko wtedy, gdy zostaną znalezione problemy o wysokim priorytecie. Pamiętaj, że interfejs CLI nigdy nie zwraca kodu błędu. Deweloper musi ręcznie zwracać kody błędów w kroku skryptowym.
  • eksportować wszystkie dane do formatu JSON, aby zapewnić większą elastyczność;

Oto przykład użycia interfejsu CLI w GitHub Actions przy każdym zatwierdzeniu zamiast działania GitHub Checks CI/CD. Przekształcamy też dane wyjściowe, aby w przypadku wykrycia przez narzędzie Checks problemów o wysokim priorytecie generować kod błędu:

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

Prześlij opinię

Czy masz przepływ pracy CI/CD, który chcesz dodać do tego przewodnika? Poinformuj nas o tym, wysyłając e-maila na adres checks-support@google.com.