דרישות מוקדמות ל-CI/CD
כדי להגדיר את Checks להפעלה בצינור, צריך לאחזר את נתוני ההגדרה העיקריים מחשבון Checks ומהפרויקט ב-Google Cloud.
בדיקת חשבון ואפליקציה
כשמריצים בדיקות בפלטפורמת CI/CD, צריך להקצות את התוצאות לחשבון Checks ולאפליקציה שמקושרים לחשבון הזה. כדי לעשות את זה, תצטרכו את מזהה החשבון ומזהה האפליקציה של Checks.
כדי למצוא את מספר החשבון, עוברים אל דף הגדרות החשבון.
כדי למצוא את מזהה האפליקציה, עוברים אל דף הגדרות האפליקציה.
אימות
צריך להשתמש בחשבון שירות כשמשתמשים בבדיקות בהגדרת אוטומציה, כמו CI/CD. מידע נוסף על יצירה והגדרה של חשבון שירות זמין במאמר אימות ה-CLI.
אם אתם משתמשים באחד מהפלאגינים של Checks CI/CD, תוכלו לעיין במסמכי העזרה של הפלאגין כדי להבין איך מספקים את פרטי הכניסה.
אם משתמשים ב-Checks CLI במערכת CI/CD, מומלץ להשתמש במשתני סביבת CI כדי להגדיר את מפתח ה-JSON. לדוגמה:
CHECKS_CREDENTIALS=/my/path/to/serviceaccount.json
הגדרת בדיקות להרצה בצינור עיבוד נתונים של CI/CD
הכלי 'בדיקות' תומך בגישות הבאות:
- בדיקת תוספים של CI/CD: Checks מספקת תוספים מוכנים מראש למספר פלטפורמות של CI/CD, כולל GitHub ו-fastlane. מידע נוסף זמין בניווט הצדדי.
- Checks CLI: צוותים עם תהליכי עבודה מורכבים יותר, או צוותים שמשתמשים במערכת בנייה ללא פלאגין מוכן מראש של Checks, יכולים להשתמש ב-Checks CLI בצינור CI/CD שלהם. פרטים נוספים זמינים במאמרים הגדרה באמצעות Checks CLI והגדרה אוניברסלית באמצעות Checks CLI.
- Checks API: לצוותים עם תהליכי עבודה מותאמים אישית, Checks מציע API ל-REST חזק. אפשר להשתמש בו כדי להתחיל סריקות, לאחזר דוחות ולהתאים את החוויה לדרישות הייחודיות שלכם. מידע נוסף זמין במסמכי התיעוד של Checks API.
הגדרה אוניברסלית באמצעות Checks CLI
אם אין תוסף Checks לפלטפורמת ה-CI/CD שלכם, אתם יכולים להשתמש ב-Checks CLI. מפתחים יכולים לכתוב סקריפטים ל-Checks CLI ישירות בכל פלטפורמת CI/CD שתומכת בשלבים של תהליך עבודה להרצת סקריפטים.
אפשר לכתוב סקריפט ל-CLI של Checks כדי:
- החזרת קודי שגיאה שאינם אפס רק כשמתקיימים קריטריונים מסוימים, לדוגמה, יציאה עם קוד שגיאה רק אם נמצאו בעיות בעדיפות גבוהה. שימו לב שממשק שורת הפקודה אף פעם לא יחזיר קוד שגיאה. המפתח צריך להחזיר קודי שגיאה באופן ידני בשלב הסקריפט.
- פלט של כל הנתונים בפורמט JSON כדי ליהנות מגמישות רבה יותר.
הנה דוגמה לשימוש ב-CLI ב-GitHub Actions בכל פעולת commit, במקום ב-Checks CI/CD GitHub Action. בנוסף, אנחנו משנים את הפלט כך שיופק קוד שגיאה אם הכלי Checks ימצא בעיות בעדיפות גבוהה:
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.