ข้อกำหนดเบื้องต้นสำหรับ CI/CD
หากต้องการกำหนดค่าการตรวจสอบให้ทำงานในไปป์ไลน์ ให้ดึงข้อมูลอินพุตการกำหนดค่าที่สำคัญจาก บัญชี Checks และโปรเจ็กต์ Google Cloud
บัญชีและแอปของ Target Checks
เมื่อเรียกใช้การตรวจสอบในแพลตฟอร์ม CI/CD คุณจะต้องกำหนดผลลัพธ์ ให้กับบัญชีการตรวจสอบและแอปที่คุณเชื่อมต่อกับบัญชีการตรวจสอบนั้น หากต้องการดำเนินการนี้ คุณจะต้องมีรหัสบัญชีและรหัสแอปของ Checks
สำหรับรหัสบัญชี ให้ไปที่หน้าการตั้งค่าบัญชี
สำหรับรหัสแอป ให้ไปที่หน้าการตั้งค่าแอป
การตรวจสอบสิทธิ์
ควรใช้บัญชีบริการเมื่อใช้การตรวจสอบในการตั้งค่าการทำงานอัตโนมัติ เช่น CI/CD ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างและกำหนดค่าบัญชีบริการได้ที่หัวข้อตรวจสอบสิทธิ์ CLI
หากใช้ปลั๊กอิน CI/CD ของ Checks โปรดดูเอกสารประกอบของปลั๊กอิน เพื่อดูวิธีระบุข้อมูลเข้าสู่ระบบ
หากใช้ Checks CLI ภายในระบบ CI/CD ขอแนะนำให้ใช้ตัวแปรสภาพแวดล้อม CI เพื่อกำหนดค่าคีย์ JSON เช่น
CHECKS_CREDENTIALS=/my/path/to/serviceaccount.json
กำหนดค่าการตรวจสอบให้ทำงานในไปป์ไลน์ CI/CD
การตรวจสอบรองรับแนวทางต่อไปนี้
- ปลั๊กอิน CI/CD ของ Checks: Checks มีปลั๊กอินที่สร้างไว้ล่วงหน้าสำหรับแพลตฟอร์ม CI/CD หลายแพลตฟอร์ม รวมถึง GitHub และ fastlane ดูข้อมูลเพิ่มเติมได้ที่การนำทางด้านข้าง
- Checks CLI: ทีมที่มีเวิร์กโฟลว์ที่ซับซ้อนมากขึ้นหรือใช้ระบบบิลด์ ที่ไม่มีปลั๊กอิน Checks ที่สร้างไว้ล่วงหน้าสามารถใช้ Checks CLI ในไปป์ไลน์ CI/CD ได้ ดูรายละเอียดได้ที่การตั้งค่าโดยใช้ Checks CLI และการตั้งค่าส่วนกลางโดยใช้ Checks CLI
- API การตรวจสอบ: สำหรับทีมที่มีเวิร์กโฟลว์ที่ปรับแต่งอย่างมาก การตรวจสอบมี REST API ที่มีประสิทธิภาพ ใช้เพื่อเริ่มการสแกน ดึงข้อมูลรายงาน และปรับแต่ง ประสบการณ์การใช้งานให้ตรงกับข้อกำหนดเฉพาะของคุณ ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบเกี่ยวกับ Checks API
การตั้งค่าแบบสากลโดยใช้ Checks CLI
หากไม่มีปลั๊กอิน Checks สำหรับแพลตฟอร์ม CI/CD คุณสามารถใช้ Checks CLI ได้ นักพัฒนาซอฟต์แวร์สามารถเขียนสคริปต์ CLI ของ Checks ลงในแพลตฟอร์ม CI/CD ใดก็ได้ที่รองรับขั้นตอนเวิร์กโฟลว์การเรียกใช้สคริปต์ได้โดยตรง
คุณเขียนสคริปต์ CLI ของการตรวจสอบเพื่อทำสิ่งต่อไปนี้ได้
- ส่งรหัสข้อผิดพลาดที่ไม่ใช่ 0 เมื่อตรงตามเกณฑ์บางอย่างเท่านั้น เช่น ออกด้วยรหัสข้อผิดพลาดเฉพาะในกรณีที่พบปัญหาที่มีลำดับความสำคัญสูง โปรดทราบว่า CLI จะไม่แสดงรหัสข้อผิดพลาด นักพัฒนาซอฟต์แวร์ต้องแสดงรหัสข้อผิดพลาดด้วยตนเองในขั้นตอนการเขียนสคริปต์
- ส่งออกข้อมูลทั้งหมดเป็น JSON เพื่อเพิ่มความยืดหยุ่น
ต่อไปนี้เป็นตัวอย่างการใช้ CLI ใน GitHub Actions ในทุกการคอมมิตแทน GitHub Action ของ CI/CD ของการตรวจสอบ นอกจากนี้ เรายังเปลี่ยนรูปแบบเอาต์พุตเพื่อสร้างรหัสข้อผิดพลาดเมื่อการตรวจสอบพบปัญหาที่มีลำดับความสำคัญสูงด้วย
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