Prasyarat untuk CI/CD
Untuk mengonfigurasi Pemeriksaan agar berjalan di pipeline, ambil input konfigurasi utama dari akun Pemeriksaan dan project Google Cloud Anda.
Akun dan aplikasi Target Checks
Saat menjalankan Pemeriksaan di platform CI/CD, Anda harus menetapkan hasil ke akun Pemeriksaan dan aplikasi yang telah Anda hubungkan ke akun Pemeriksaan tersebut. Untuk melakukannya, Anda memerlukan ID Akun dan ID Aplikasi Pemeriksaan.
Untuk mengetahui ID Akun Anda, buka halaman Setelan Akun.
Untuk ID Aplikasi Anda, buka halaman Setelan Aplikasi.
Autentikasi
Akun layanan harus digunakan saat menggunakan Pemeriksaan dalam penyiapan otomatisasi, seperti CI/CD. Untuk mengetahui informasi selengkapnya tentang cara membuat dan mengonfigurasi akun layanan, lihat Mengautentikasi CLI.
Jika menggunakan salah satu plugin CI/CD Checks, lihat dokumentasi plugin untuk mengetahui cara memberikan kredensial.
Jika menggunakan Checks CLI dalam sistem CI/CD, sebaiknya gunakan variabel lingkungan CI untuk mengonfigurasi kunci JSON Anda. Contoh:
CHECKS_CREDENTIALS=/my/path/to/serviceaccount.json
Mengonfigurasi Pemeriksaan untuk dijalankan di pipeline CI/CD
Pemeriksaan mendukung pendekatan berikut:
- Plugin CI/CD Checks: Checks menyediakan plugin bawaan untuk beberapa platform CI/CD, termasuk GitHub dan fastlane. Lihat navigasi samping untuk mengetahui informasi selengkapnya.
- CLI Pemeriksaan: Tim dengan alur kerja yang lebih kompleks, atau yang menggunakan sistem build tanpa plugin bawaan Pemeriksaan, dapat menggunakan CLI Pemeriksaan di pipeline CI/CD mereka. Lihat Menyiapkan menggunakan Checks CLI dan Penyiapan universal menggunakan Checks CLI untuk mengetahui detailnya.
- Checks API: Untuk tim dengan alur kerja yang sangat disesuaikan, Checks menawarkan REST API yang andal. Gunakan untuk memulai pemindaian, mengambil laporan, dan menyesuaikan pengalaman dengan kebutuhan unik Anda. Temukan informasi selengkapnya di dokumentasi Checks API.
Penyiapan universal menggunakan Checks CLI
Jika plugin Checks tidak ada untuk platform CI/CD Anda, Anda dapat menggunakan CLI Checks. Checks CLI dapat disusun skripnya langsung oleh developer ke dalam platform CI/CD apa pun yang mendukung langkah-langkah alur kerja eksekusi skrip.
Checks CLI dapat dibuat skrip untuk:
- Tampilkan kode error bukan nol hanya jika kriteria tertentu terpenuhi, misalnya, keluar dengan kode error hanya jika masalah prioritas tinggi ditemukan. Perhatikan bahwa CLI tidak akan pernah menampilkan kode error; developer harus menampilkan kode error secara manual di langkah pembuatan skrip.
- Menampilkan semua datanya ke dalam JSON agar lebih fleksibel.
Berikut adalah contoh penggunaan CLI di GitHub Actions pada setiap commit, bukan GitHub Action CI/CD Pemeriksaan. Kami juga mengubah output untuk menghasilkan kode error saat Pemeriksaan menemukan masalah prioritas:
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);
}
Masukan
Apakah Anda memiliki alur kerja CI/CD yang ingin ditambahkan ke panduan ini? Beri tahu kami di checks-support@google.com.