CI/CD 的前提条件
如需配置在流水线中运行的检查,请从您的 Checks 账号和 Google Cloud 项目中检索关键配置输入。
目标“检查”账号和应用
在 CI/CD 平台中运行检查时,您需要将结果分配给检查账号以及已与该检查账号相关联的应用。为此,您需要 Checks 账号 ID 和应用 ID。
如需查看您的账号 ID,请访问您的账号设置页面。
如需查看您的应用 ID,请访问应用设置页面。
身份验证
在自动化设置(例如 CI/CD)中使用检查时,应使用服务账号。如需详细了解如何创建和配置服务账号,请参阅对 CLI 进行身份验证。
如果使用 Checks CI/CD 插件,请参阅该插件的文档,了解如何提供凭据。
如果在 CI/CD 系统中使用 Checks CLI,建议使用 CI 环境变量来配置 JSON 密钥。例如:
CHECKS_CREDENTIALS=/my/path/to/serviceaccount.json
配置在 CI/CD 流水线中运行的检查
支票支持以下付款方式:
- 检查 CI/CD 插件:Checks 为多个 CI/CD 平台(包括 GitHub 和 fastlane)提供预构建的插件。如需了解详情,请参阅侧边导航栏。
- Checks CLI:工作流较为复杂或使用没有 Checks 预构建插件的 build 系统的团队可以在其 CI/CD 流水线中使用 Checks CLI。如需了解详情,请参阅使用 Checks CLI 进行设置和使用 Checks CLI 进行通用设置。
- Checks API:对于工作流程高度自定义的团队,Checks 提供强大的 REST API。您可以使用该 API 来启动扫描、检索报告,并根据您的独特要求量身定制体验。如需了解详情,请参阅 Checks API 文档。
Jenkins
此示例展示了 Checks CLI 的一种可能的 Jenkins 集成。
前提条件
- 设置
CHECKS_CREDENTIALS环境并将其指向服务账号凭据。 - 将 Pipeline Utility Steps 插件添加到您的 Jenkins 服务器,以添加对解释 JSON 字符串(例如
readJSON函数)的支持。
示例
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building APK ...'
sh 'build-apk-cmd'
}
}
stage('Checks Analysis') {
steps {
script {
ACCOUNT_ID = "123456"
APP_ID = "654321"
BINARY_PATH = "${WORKSPACE}/path/to/binary.apk"
echo 'Starting Checks Analysis ...'
sh "./checks report generate --binary-path=${BINARY_PATH} --app-id=${APP_ID} --account-id=${ACCOUNT_ID} --no-input --json --wait-and-print-report > checks_results.json"
echo "Wrote Checks analysis results to checks_results.json"
def report = readJSON file: "${WORKSPACE}/checks_results.json"
echo "Generated report name: ${report.name}"
echo "Report console URL: ${report.resultsUri}"
def failingChecks = []
for (check in report.checks) {
if (check.severity.toString() == "PRIORITY" && check.state.toString() == "FAILED") {
failingChecks.push(check)
}
}
if (failingChecks.size() > 0) {
echo "${failingChecks.size()} priority issue(s) detected: "
for (check in failingChecks) {
echo "Type: ${check.type}. Details: ${check}"
}
error('Failing build because Checks detected at least one priority issue.')
}
}
}
}
}
post {
failure {
echo "Pipeline failed :("
}
}
}
反馈
您是否有希望添加到本指南中的 CI/CD 工作流?请发送电子邮件至 checks-support@google.com 告知我们。