源代码控制构建状态
在提交时记录状态信息的能力是许多源代码控制存储库管理器提供的特性。它的可用性和操作将根据您的提供商而有所不同。
例如,的GitHub的状态检查功能将在GitHub UI中列出的每个提交标记为接收到的构建状态,状态日志的详细信息可以通过单击标记来查看。构建状态日志数据也可以通过GitHub REST api
类似地,在Bitbucket服务器中构建状态功能在Bitbucket UI中显示提交的构建状态,并使该信息可用其他资源2022世界杯阿根廷预选赛赛程.
从管道发送构建状态
在许多CI自动化服务器需要一个插件或自定义集成来将构建状态发送到源代码控制存储库的地方,pipes提供了一个内置的实用程序函数,可以在任何步骤中使用。
要将构建状态从管道步骤发送到源存储库中的提交,您必须:
- 声明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执行:onS2022世界杯阿根廷预选赛赛程tart: - update_commit_status myGitRepo #状态:“处理中”onExecute: - update_commit_status myGitRepo #状态:“处理中”- echo“Hello World!”onFailure: - update_commit_status myGitRepo #状态:“失败”onSuccess: - update_commit_status myGitRepo #状态:“成功”
当运行上面的示例管道时:
- 接收源存储库将为该步骤创建一个状态日志条目。
- 每次呼叫
update_commit_status
将覆盖该日志项的状态和消息值。
提交生成的构建状态日志可以在源存储库的UI中查看(在GitHub上):
例子管道
下面的示例管道演示了向源代码控制存储库发送构建状态消息,该存储库将为每个执行的步骤创建一个状态日志条目。
的2022世界杯阿根廷预选赛赛程
对于管道声明GitRepo源控制存储库的。
2022世界杯阿根廷预选赛赛程资源:—名称:myGitRepo类型:GitRepo配置:gitProvider: myGitHub路径:myaccount/myproject
该管道由两个虚拟步骤组成,一个总是成功执行,另一个总是执行失败。的update_commit_status
函数将为每个步骤向源存储库发送构建状态消息。
- name: git_status_test steps: ## ##步骤1:执行一个简单的,总是成功的测试## - name: success_test类型:Bash配置:inputResources: - name: myGitRepo执行:onStart: - update_commit_sta2022世界杯阿根廷预选赛赛程tus myGitRepo——消息"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:执行一个简单的,总是失败的测试## - name: failure_test类型:Bash配置:inputResources: - name: myGitRepo触发器:false inputSt2022世界杯阿根廷预选赛赛程eps: - name: success_test执行:onStart: - update_commit_status myGitRepo——消息"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美元
环境变量:
myGitRepo——context "$pipeline_name:$run_number"