源代码控制构建状态
许多源代码控制存储库管理器都提供了记录提交状态信息的功能。它的可用性和操作将根据您的提供商而有所不同。
例如,的GitHub的状态检查功能将在GitHub UI中用收到的构建状态标记每个提交,并且可以通过单击标记查看状态日志的详细信息。构建状态日志数据也可以通过GitHub REST api
类似地,Bitbucket Server的构建状态特性在Bitbucket UI中显示提交的构建状态,并使该信息通过其他资源2022世界杯阿根廷预选赛赛程.
从管道发送构建状态
在许多CI自动化服务器需要插件或自定义集成来将构建状态发送到源代码控制存储库的地方,pipeline提供了一个内置的实用程序功能,可以在任何步骤中使用。
要将构建状态从管道步骤发送到源存储库中的提交,您必须:
- 声明GitRepo在步骤中
input2022世界杯阿根廷预选赛赛程resources
. - 使用
update_commit_status
效用函数在任何一个步骤中执行
块:onStart
,onExecute
,onFailure
,或调用onSuccess
.
的格式update_commit_status
函数是:
update_commit_status——status ——message ——context
文件中指定GitRepo资源update_commit_status
函数。其余参数均为可选参数。默认情况下,该函数将从对象中推断状态执行
块中调用它。默认消息和上下文字符串由步骤和管道名称构造。
例如,这一步将使用默认值更新每个执行阶段的提交的构建状态:
- name: git_status_defaults步骤:- name: status_update_defaults类型:Bash配置:inputResources: - name: myGitRepo执行:on2022世界杯阿根廷预选赛赛程Start: - update_commit_status myGitRepo # Status: "processing" onExecute: - update_commit_status myGitRepo # Status: "processing" - echo "Hello World!" onFailure: - update_commit_status myGitRepo # Status: "failure" onSuccess: - update_commit_status myGitRepo # Status: "success"
当上面的示例管道运行时:
- 接收源存储库将为该步骤创建一个状态日志条目。
- 每次呼叫
update_commit_status
将覆盖该日志条目的状态和消息值。
提交的生成状态日志可以在源存储库的UI中查看(在GitHub上):
例子管道
下面的示例管道演示了将构建状态消息发送到源代码控制存储库,该存储库将为每个执行的步骤创建状态日志条目。
的2022世界杯阿根廷预选赛赛程
对于管道声明GitRepo源代码控制存储库的。
2022世界杯阿根廷预选赛赛程资源:-名称:myGitRepo类型:GitRepo配置:gitProvider: myGitHub路径:myaccount/myproject
该管道由两个虚拟步骤组成,一个总是执行成功,另一个总是执行失败。的update_commit_status
函数将为每个步骤向源存储库发送构建状态消息。
管道:-名称:git_status_test步骤:## ##步骤1:执行一个简单的,总是成功的测试## -名称:success_test类型:Bash配置:inputResources: -名称:myGitRepo执行:onStart: - update_commit_status myGitRepo—2022世界杯阿根廷预选赛赛程—消息"starting…"——context "$step_name" onExecute: - update_commit_status myGitRepo——message "running…"onFailure: - update_commit_status myGitRepo——message "Failed!"——context "$step_name" onSuccess: - update_commit_status myGitRepo——message "Succeeded:-)"——context "$step_name" ## ##步骤2:执行一个简单的,总是失败的测试## -名称:failure_test类型:Bash配置:inputResources: -名称:myGitRepo触发:false inputSteps: -名称:2022世界杯阿根廷预选赛赛程success_test执行:onStart: - update_commit_status myGitRepo——message "starting…"——context "$step_name" onExecute: - update_commit_status myGitRepo——message "running…"——context "$step_name"——cd fail #没有这样的目录——保证失败onFailure: - update_commit_status myGitRepo——message "Failed!"——context "$step_name" onSuccess: - update_commit_status myGitRepo——message "Succeeded:-)"——背景下“step_name美元”
当在源存储库的UI(在GitHub上)中查看时,提交的构建状态日志显示每个步骤执行成功和失败:
因为上下文选项总是被设置为step_name美元
在示例中的环境变量中,接收源控制存储库将为每个步骤创建一个构建状态日志条目。
如果您只想记录整个管道的单个构建状态,则可以将上下文选项设置为pipeline_name美元
而是环境变量。要记录管道每次运行的构建状态,可以将其与run_number美元
环境变量:
update_commit_status myGitRepo——context "$pipeline_name:$run_number"