发布构建记录
您可以使用 Jenkins 将项目与 IBM Cloud® DevOps Insights 相集成,以发布构建记录。 构建记录在构建完成时会通知 DevOps Insights。 此记录包含应用程序名称、分支、构建标识、对 Git 存储库的引用以及其他字段。 您必须发布构建记录,才能在 DevOps Insights 中查看任何测试记录和部署记录,或者对策略进行评估。
IBM Cloud® DevOps Insights 根据发布的测试数据来跟踪部署风险。 将 Jenkins 与 DevOps Insights 相集成后,DevOps Insights 即会从 Jenkins 项目中收集信息。 收集的信息将显示在 DevOps Insights 仪表板中,供您查看 DevOps 过程。
准备工作
您必须具有工具链。 有关更多信息,请参阅创建工具链。
将 Jenkins 工具添加到应用程序的工具链。 有关更多信息,请参阅配置 Jenkins。
使用 Jenkins 发布构建记录
这些是管道与 DevOps Insights 集成所必需的变量。
环境变量 | 定义 |
---|---|
IBM_CLOUD_DEVOPS_API_KEY |
传递到应用程序编程接口 (API) 以标识调用应用程序或用户的唯一代码。 将 API 密钥存储为 Jenkins 凭证。(私钥文本类型)。 |
IBM_CLOUD_DEVOPS_APP_NAME |
工具链部署的应用程序的名称。 如果将 applicationName 参数传递到步骤作业,那么针对该步骤将忽略此值。 |
IBM_CLOUD_DEVOPS_TOOLCHAIN_ID |
工具链的标识。 |
对于每个命令,需要指定工具链标识才能导出环境变量。 IBM Cloud® DevOps Insights 插件使用这些环境变量和凭证来与 DevOps Insights 进行交互。 下面是以声明式管道格式设置这些环境变量和凭证的示例。
environment {
IBM_CLOUD_DEVOPS_API_KEY = credentials('BM_API_KEY')
IBM_CLOUD_DEVOPS_APP_NAME = 'Weather-App'
IBM_CLOUD_DEVOPS_TOOLCHAIN_ID = '1111111-aaaa-2222-bbbb-333333333'
}
有关创建 API 密钥的更多信息,请参阅管理用户 API 密钥。
有关工具链标识的更多信息,请参阅识别工具链标识。
使用 publishBuildRecord 步骤发布构建记录。 此步骤需要四个参数。 此外,它还可接受一个可选参数。
参数 | 定义 |
---|---|
gitBranch |
构建使用的 Git 分支的名称。 |
gitCommit |
构建使用的 Git 提交的标识。 |
gitRepo |
Git 存储库的 URL。 |
result |
构建阶段的结果。 值为 SUCCESS 或 FAIL。 |
buildNumber |
可选:将值设置为表示版本号的任何字符串。 |
applicationName |
可选:设置应用程序名称。 如果设置了此值,那么会忽略环境变量 IBM_CLOUD_DEVOPS_APP_NAME 。 |
下面是示例命令中的参数:
stages {
Stage(`Build) {
environmnet {
// get git commit from Jenkins
GIT_COMMIT = sh(returnStdout: true, script: 'git rev-parse HEAD').trim()
GIT_BRANCH = 'master'
GIT_REPO = 'https:github.com/xunronli-ibm/DemoDRA/'
}
steps {
echo "building"
}
// post build section to use "publishBuildRecord" method to publish build record
post {
success {
publishBuildRecord gitBranch: "${GIT_BRANCH}", gitCommit: "${GIT_COMMIT}", gitRepo: "${GIT_REPO}", result:"SUCCESS"
}
failure {
publishBuildRecord gitBranch: "${GIT_BRANCH}", gitCommit: "${GIT_COMMIT}", gitRepo: "${GIT_REPO}", result:"FAIL"
}
}
}
}
Jenkins Pipeline 不会将 Git 信息显示为环境变量。 可以使用 sh(returnStdout: true, script: 'Git rev-parse HEAD').trim() 命令来获取 Git 提交标识。
DevOps Insights 步骤
Cloud DevOps 插件会向 Jenkins Pipeline 添加四个步骤供您使用。 在管道中使用这些步骤可与 DevOps Insights 进行交互。 将这些步骤添加到管道定义中需要运行这些步骤的每个位置。 例如,在运行测试后可上传测试结果,然后在检测点对上传的结果进行评估。
步骤 | 使用 |
---|---|
publishBuildRecord |
发布构建信息 |
publishTestResult |
发布测试结果 |
publishDeployRecord |
发布部署记录 |
evaluateGate |
强制实施策略 |
缺省情况下,版本号设置为 {pipeline name}:{build number},您还可以在每个步骤中设置定制版本号
样本管道和代码
下面是两个完整的管道示例,分别定义为 声明式Jenkins文件和 脚本式Jenkins文件。
Git仓库包含一个 nodejs 应用程序代码示例、测试和Jenkins文件,您可以对其进行实验。 请派生该存储库,并使用实际信息来修改 Jenkins 文件。
如果没有在 Jenkins 环境中安装 NodeJS,那么可能必须安装 node.js Jenkins 插件。 如果已安装 NodeJS,那么可以注释掉 Jenkins 文件中的“tools”部分。
查看构建频率
此构建作业完成之后,管道会向 DevOps Insights 发布一条消息,指示构建完成。 您可以在“构建频率”页面上查看构建记录。 要查看“构建频率”页面,请使用以下步骤。
- 从IBM Cloud控制台,单击菜单图标
>平台自动化>工具链。
- 选择工具链。
- 在工具链的“概述”页面的 IBM Cloud 工具 卡上,单击 DevOps Insights。
- 单击构建频率。
后续步骤
了解如何使用 Jenkins 发布部署记录。