云客户?
免费开始>
在MyJFrog中升级>
云的新功能>





概述

管道可以发送有关其当前构建状态的信息(处理成功,或失败)到源存储库进行记录和显示。


大多数源代码控制提供程序都具有接收和记录来自外部CI自动化工具(如Pipelines)的构建状态结果的功能。然后,源代码管理用户可以通过源代码管理器的UI查看这些状态日志,或者通过源代码管理器的API检索它们。

管线提供update_commit_status效用函数将生成状态信息发送到一个GitRepo资源,与GitRepo最近提交的sha相关联。

您可能希望使用此函数:

  • 在合并之前确定拉取请求是否可以成功构建
  • 在源提供程序UI中查看构建结果
  • 使构建结果对那些在您的组织的JFrog平台部署上没有帐户的人可见,或者没有在Pipelines中查看管道的权限
  • 通过源代码控制API向其他自动化工具提供构建状态结果
页面内容


源代码控制构建状态

许多源代码控制存储库管理器都提供了记录提交状态信息的功能。它的可用性和操作将根据您的提供商而有所不同。

例如,GitHub的状态检查功能将在GitHub UI中用收到的构建状态标记每个提交,并且可以通过单击标记查看状态日志的详细信息。构建状态日志数据也可以通过GitHub REST api


类似地,Bitbucket Server的构建状态特性在Bitbucket UI中显示提交的构建状态,并使该信息通过其他资源2022世界杯阿根廷预选赛赛程


从管道发送构建状态

在许多CI自动化服务器需要插件或自定义集成来将构建状态发送到源代码控制存储库的地方,pipeline提供了一个内置的实用程序功能,可以在任何步骤中使用。

要将构建状态从管道步骤发送到源存储库中的提交,您必须:

  1. 声明GitRepo在步骤中input2022世界杯阿根廷预选赛赛程resources
  2. 使用update_commit_status效用函数在任何一个步骤中执行块:onStartonExecuteonFailure,或调用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源代码控制存储库的。

pipelines.2022世界杯阿根廷预选赛赛程resources.yml
2022世界杯阿根廷预选赛赛程资源:-名称:myGitRepo类型:GitRepo配置:gitProvider: myGitHub路径:myaccount/myproject


该管道由两个虚拟步骤组成,一个总是执行成功,另一个总是执行失败。的update_commit_status函数将为每个步骤向源存储库发送构建状态消息。

pipelines.steps.yml
管道:-名称: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"
  • 没有标签
版权所有©2022 JFrog Ltd.