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 konta i identyfikatora 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ń Checks i Konfigurowanie 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.