云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

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


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

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

你可能希望使用这个函数:

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


源代码控制构建状态

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

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


类似地,在Bitbucket服务器中构建状态功能在Bitbucket UI中显示提交的构建状态,并使该信息可用其他资源2022世界杯阿根廷预选赛赛程


从管道发送构建状态

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

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

  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执行: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源控制存储库的。

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


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

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