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





概述

最重要的决定之一如何将DevOps流程映射到JFrog pipeline的步骤和资源概念。2022世界杯阿根廷预选赛赛程

一个一步是管道的一个组件,它执行命令来完成一个活动,例如构建一个二进制文件,将一个二进制文件推送到一个存储库,部署一个服务,发放一个VPC或集群,等等。

JFrog pipeline的原生步骤帮助您将管道构建为一系列较小的操作。例如,您可以使用本机步骤DockerBuild构建Docker映像,然后使用DockerPush将生成的图像推送到Docker注册表中。

这对于pipeline构建工作流的“构建块”方法是必不可少的。因此,确保使用泛型创建的步骤是至关重要的最佳实践Bash步骤封装与本机步骤类似的离散操作。

确定步骤离散性的一些准则如下:

  • 一个步骤应该执行一个任务,这样您就可以获得该任务的离散状态。
  • 可以独立触发一个步骤来触发下游管道,因此在设计步骤边界时应该考虑到这一点。
  • 步骤可以并行运行以加速管道执行,因此,如果您有一个大型测试套件,您可以将其划分为几个步骤并并行运行。
  • 步骤可以在不同大小的节点上运行,因此,如果希望在更大或更小的节点上运行一系列步骤,请将其分离为一个步骤。
  • 一个步骤应该有一个连续的工作流,中间没有停顿。例如,如果您需要手动输入某个步骤,那么最好将该步骤分隔为另一个步骤,并在中间设置一个审批门。这可以防止您的步骤阻塞正在等待输入的构建节点。
  • 对于基于分支的管道,最好将每个分支(或分支类型)的步骤分开,这样您就可以轻松地识别每个分支的状态。
页面内容

例子管道

让我们举一个典型管道的简单例子。对于每个归并到你的GitRepo分支,你需要:

  1. 构建Docker映像
  2. 把它推到Docker注册表中
  3. 将其部署到Kubernetes开发环境中
  4. 针对已部署的应用程序运行测试,并发送结果通知

单步法

从技术上讲,您可以将所有这些步骤捆绑在一起Bash一步.您的管道图将是一个单独的步骤,由您的GitRepo资源:

上述方法具有以下特点:

  • 没有离散状态。如果此步骤失败,则无法一眼看出构建、部署或功能测试是否失败。
  • 整个管道作为一个单元运行,因此没有办法将部分分离出来进行特殊处理。例如,您不能在具有支持组件的自定义运行时的节点上运行功能测试套件。

多步骤方法

让我们看看使用本机步骤和的组合来实现同一管道的替代方法Bash步骤:

正如您所看到的,管道具有更加离散的结构,每个步骤都可以发送其状态通知。

还可以在具有自定义运行时的节点上运行“运行测试”步骤,甚至可以在节点上运行把它分成平行的步骤需要的。

这是推荐的方法,用于定义足够离散的步骤,以便能够执行临时操作,如识别状态、发送通知和评估结果。

  • 没有标签
版权所有©2022 JFrog有限公司