IBM Cloud Docs
发布构建记录

发布构建记录

您可以使用 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 集成所必需的变量。

Jenkins环境变量和定义
环境变量 定义
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 进行交互。 将这些步骤添加到管道定义中需要运行这些步骤的每个位置。 例如,在运行测试后可上传测试结果,然后在检测点对上传的结果进行评估。

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 发布一条消息,指示构建完成。 您可以在“构建频率”页面上查看构建记录。 要查看“构建频率”页面,请使用以下步骤。

  1. 从IBM Cloud控制台,单击菜单图标汉堡包图标>平台自动化>工具链
  2. 选择工具链。
  3. 在工具链的“概述”页面的 IBM Cloud 工具 卡上,单击 DevOps Insights
  4. 单击构建频率

后续步骤

了解如何使用 Jenkins 发布部署记录