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 文档。
Fastlane
Checks App Compliance fastlane 插件是一种无缝方式,可直接从 fastlane 自动执行 iOS Checks 分析。借助此插件,您可以通过在 Fastfile 中添加操作,将应用上传到 Checks。如需详细了解 fastlane 插件,请参阅 fastlane 文档。
使用入门
如需将检查添加到您的 Fastlane 配置,请从 iOS 项目的根目录运行以下命令:
fastlane add_plugin checks接下来,在 ./fastlane/Fastfile 通道中,添加 upload_to_checks 代码块。使用 upload_to_checks 和必需参数的基本方式如下:
upload_to_checks(
account_id: "<your Checks account ID>",
app_id: "<your Checks app ID>",
binary_path: "<path to your .apk/.aab/.ipa>",
service_account_file_path: ENV["SERVICE_ACCOUNT_JSON"],
)
配置
与我们的 CLI 一样,您可以配置 fastlane 插件来满足流程需求。
输入
| 名称 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| account_id | 字符串 | 是 | 检查检查设置页面中的账号 ID |
| app_id | 字符串 | 是 | 检查应用 ID |
| binary_path | 字符串 | 是 | 应用归档的路径:.apk、.aab 或 .ipa |
| service_account_file_path | 字符串 | 是 | 服务账号的 base64 编码内容。请参阅使用服务账号进行身份验证检查,以生成服务账号并将 Base64 二进制 blob 存储为 Secret |
| generate_report | 布尔值 | 错误 | 默认为 true。如果为 false,则操作不会将 binary_path 上传到检查。此功能可用于测试身份验证和其他参数。 |
| wait_for_report | 布尔值 | true | 如果值为 false,则操作不会等待报告完成,流水线将继续运行。 |
| severity_threshold | 字符串 | – | 选择此选项后,系统只会报告指定级别或更高级别的漏洞。有效值包括:PRIORITY POTENTIAL OPPORTUNITY |
| fail_on | 字符串 | – | 如果为 ALL,则在 severity_threshold 条件之后,如果存在任何失败的检查,操作将失败。默认情况下,它不会失败。 |
| operation_id | 字符串 | – | 用于开发和测试目的。如果上传已在进行中,或者您想分析现有上传。 |
使用 Checks App Compliance fastlane 插件的示例
通过配置 Checks fastlane 插件的输入,您可以自定义 Checks 分析是在后台运行还是作为测试套件的一部分运行。
将每个新版本上传到 Checks,并在后台运行分析
platform :ios do
desc "My example app"
lane :distribute do
build_ios_app(...)
upload_to_checks(
account_id: "1234567890",
app_id: "1234567890",
binary_path: "./example-app.ipa",
service_account_file_path: ENV["SERVICE_ACCOUNT_JSON"],
)
distribute_ios_app(...)
end
end
在 Fastlane 测试套件中运行检查
desc "Checks App Compliance analysis"
lane :test do |options|
upload_to_checks(
account_id: "1234567890",
app_id: "1234567890",
binary_path: "./example-app.ipa",
service_account_file_path: ENV["SERVICE_ACCOUNT_JSON"],
wait_for_report: true,
severity_threshold: "PRIORITY",
fail_on: "ALL",
)
end
反馈
您是否有希望添加到本指南中的 CI/CD 工作流?请发送电子邮件至 checks-support@google.com 告知我们。