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 文档。
GitHub Actions
Checks App Compliance Scan GitHub Action 是一种从 GitHub 直接自动执行 Checks 分析的无缝方式。如需详细了解 GitHub Actions,请参阅 GitHub Actions 功能页面。
使用入门
操作位于代码库中的 .github/workflows/ 目录内。首先在工作流目录中创建一个 checks.yml 文件。
我们建议在 .github/workflows/checks.yml 中进行以下配置,以运行“检查应用合规性”分析:
name: Example workflow using Checks
on:
release:
types: [published]
jobs:
checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@4
- name: Run Checks App Compliance analysis async
uses: google-checks/checks-app-scan-github-action@latest
with:
account_id: "1234567890"
app_id: "1234590"
binary_path: "./example-app.apk"
wait_for_report: true
service_account_base64: ${{ secrets.SERVICE_ACCOUNT_JSON }}
这样一来,当稳定版和预发布版本发布时,系统将运行应用合规性分析,并在工作流运行日志中显示报告结果和网址(不会导致 build 失败)。
配置
与 CLI 类似,您可以配置 GitHub 操作以满足流程需求。使用 with 键设置自定义输入。
输入
| 名称 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| account_id | 字符串 | 是 | 检查检查设置页面中的账号 ID |
| app_id | 字符串 | 是 | 检查应用 ID |
| binary_path | 字符串 | 是 | 应用归档的路径:.apk、.aab 或 .ipa |
| 版本 | 字符串 | 否 | 默认为 latest。检查要使用的 CLI 版本。它应采用 vX.Y.Z 格式,或者设置为 latest 以始终获取最新的 CLI 版本。 |
| service_account_base64 | 字符串 | 是 | 服务账号的 base64 编码内容。请参阅使用服务账号进行身份验证检查,以生成服务账号并将 Base64 二进制 blob 存储为 Secret |
| generate_report | 布尔值 | 否 | 默认为 true。如果为 false,则操作不会将 binary_path 上传到检查。此功能可用于测试身份验证和其他参数。 |
| wait_for_report | 布尔值 | 否 | 如果值为 false,则操作不会等待报告完成,流水线将继续运行。 |
| severity_threshold | 字符串 | 否 | 选择此选项后,系统只会报告指定级别或更高级别的漏洞。有效值包括:PRIORITY POTENTIAL OPPORTUNITY |
| fail_on | 字符串 | 否 | 如果为 ALL,则在 severity_threshold 条件之后,如果存在任何失败的检查,操作将失败。默认情况下,它不会失败。 |
输出
该操作将写入 checks_results.json 文件。
使用 Checks App Compliance Scan GitHub 操作的示例
通过配置 Checks GitHub 操作的输入,您可以自定义 Checks 分析是应在后台运行还是作为测试套件的一部分运行。
配置检查以在每次提交时在后台运行分析,但不会使 build 失败
name: Example workflow using Checks
on: [push]
jobs:
checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@4
- name: Run Checks App Compliance analysis async
uses: google-checks/checks-app-scan-github-action@latest
with:
account_id: "1234567890"
app_id: "1234590"
binary_path: "./example-app.apk"
service_account_base64: ${{ secrets.SERVICE_ACCOUNT_JSON }}
配置检查,以便在分析发现优先级问题时使发布失败
name: Example workflow using Checks
on:
release:
types: [published]
jobs:
checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@4
- name: Run Checks App Compliance analysis and fail on issues
uses: google-checks/checks-app-scan-github-action@latest
with:
account_id: "1234567890"
app_id: "1234590"
binary_path: "./example-app.apk"
wait_for_report: true
severity_threshold: PRIORITY
fail_on: true
service_account_base64: ${{ secrets.SERVICE_ACCOUNT_JSON }}
反馈
您是否有希望添加到本指南中的 CI/CD 工作流?请发送电子邮件至 checks-support@google.com 告知我们。