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





概述

本页提供管道配置文件结构的高级概述。


JFrog pipeline使用自己的声明性语言 基于YAML语法,管道DSL,来描述工作流。您可以在用pipeline DSL编写的文本文件中创建管道,我们将其称为管道配置.您可以在您选择的任何文本编辑器中创建这些文件。

您必须将管道配置文件存储在源代码存储库中(例如,GitHub)。当管道被配置为使用这个repo作为管道源时,配置文件将被自动读取,工作流将被加载到管道中并运行。

页面内容


管道配置结构

有两个顶层部分可以在管道配置中定义:

为了便于说明,我们将在单个管道配置文件中描述它的样子(例如:pipelines.yml)。

Example of CSS Layers Effect

Pipeline Config File (YAML)

  resources:
  - name:   resource-1
            type:     [resource-type]
            configuration:
               [resource settings]
  - name:   resource-2
            type:     [resource-type]
            configuration:
               [resource settings]
  pipelines:
     - name: my_pipeline
       configuration:
            
     [environment and runtime settings]
            
     - name: step-name 
       type: [step type] 
       configuration: 
          inputResources: 
             [triggering resource] 
          [step settings] 
       execute: 
          [shell commands to execute on condition] 
            
     - name: step-name 
       type: [step type] 
       configuration: 
          inputResources: 
             [triggering resource] 
          [step settings] 
       execute: 
          [shell commands to execute on condition] 
            
" data-title-set="title-no">




































2022世界杯阿根廷预选赛赛程参考资料部分

2022世界杯阿根廷预选赛赛程资源提供执行步骤所需的信息,或存储由步骤生成的信息。例如,资源可能指向源代码存储库、Docker映像或Helm图表。所有支持的资源的列表可在2022世界杯阿根廷预选赛赛程2022世界杯阿根廷预选赛赛程资源概述

每个的基本格式2022世界杯阿根廷预选赛赛程宣言是:

标签 描述
名字 资源的全局唯一的友好名称。
类型

指定资源类型的预定义字符串。

有关更多信息,请参见资源类型

配置

开始资源所需的设置部分类型.这通常包括将资源连接到外部服务的集成的名称。

资源定义是全局的,可以被所有管道使用在至少一个相同环境中的项目中.这意味着资源名在项目中的所有管道配置文件中必须是唯一的。

例如,这是a2022世界杯阿根廷预选赛赛程节,该节定义了两个资源2022世界杯阿根廷预选赛赛程GitRepo和一个码头工人图像

2022世界杯阿根廷预选赛赛程资源:-名称:my_Git_Repository类型:GitRepo配置:gitProvider: my_GitHub_Integration路径:~johndoe/demo分支:include: master -名称:my_Docker_Image类型:Image配置:注册表:my_Docker_Registry_Integration imageName: johndoe/demo_image imageTag: latest

管道部分

管道节定义工作流,包括步骤和它们之间的依赖关系。

每个的基本格式管道宣言是:

标签 描述
名字

资源的友好名称,在项目中是独一无二的。

配置 一个可选的部分,用于指定环境变量和/或运行时要在其中执行管道的图像。


后面是一个集合一步节,指定要执行的步骤。

名字的管道将在环境变量中可用pipeline_name美元,可用于构造构建的基本名称。

管道配置

可选配置节可以为管道中的所有步骤指定执行环境。虽然这个配置可以在每个步骤中定义,但如果管道中的所有步骤都相同,那么在管道级别定义它有时会更方便。

每个的基本格式配置部分是:

标签 描述
environmentVariables

这里定义的变量可以在管道中的每个步骤中使用。T这些变量是只读的;它们不能在一个步骤中重新定义。

如果设置了以下变量,将使用它们:

  • JFROG_CLI_BUILD_NAME:如果设置,管道将使用此值而不是收集的构建信息的默认管道名称。
  • JFROG_CLI_BUILD_NUMBER:如果设置,管道将使用此值而不是收集的构建信息的默认运行号。
  • USE_LOCAL_JFROG_CLI:如果设置为真正的,在主机上或映像中的本地JFrog CLI(取决于运行时配置),而不是与JFrog pipeline一起打包的版本。不建议这样做,本地步骤可能无法在本地JFrog CLI版本中运行。
  • JFROG_XRAY_URL:如果jfrogCliVersion设置为2时,该变量可用于指定x射线URL,以便在配置带有人工集成的JFrog CLI时使用。在大多数情况下,平台URL将是正确的JFROG_XRAY_URL不是必需的。
nodePool

可选地指定执行步骤的特定节点池。如果未指定,则将使用设置为默认值的节点池。

有关更多信息,请参见选择节点池

affinityGroup

可选地指定关联组名称,以指定此管道中的所有步骤都是一个关联组的一部分。这意味着所有步骤都将在同一构建节点上运行。

有关更多信息,请参见在同一构建节点上运行多个步骤

运行时

本节允许您为管道中的步骤指定默认运行时环境。选项有:

  • 直接在主机上运行步骤
  • 在节点池的默认Docker容器或其特定于语言的变体中运行步骤
  • 在您选择的自定义Docker容器中运行步骤

有关更多信息,请参见选择运行时映像

按时间顺序排列

任何当同一管道的另一个运行正在处理它时,管道的运行将不会开始运行按时间顺序排列设置为true。默认值为false,如果有节点可用,则允许并行运行。

dependencyMode

指定管道相对于由资源连接的其他管道的运行时间。2022世界杯阿根廷预选赛赛程如果这三个设置中的任何一个为真,如果已经有一个等待运行的具有相同资源和步骤的运行,则不会为其他管道更新的资源创建新的运行。2022世界杯阿根廷预选赛赛程因此,如果一个管道连续运行两次,并且下面的管道将waitOnParentComplete设置为true,那么下面的管道将只运行一次。当管道运行时,它们将使用最新的资源版本。

可选设置有:

  • waitOnParentComplete:如果为true,则当输出资源的管道处于等待或处理状态时,该管道将不会开始运行。
  • waitOnParentSuccess:如果为true,则当输出资源的管道(该资源是该管道的输入)正在处理运行或最后一次完整运行不成功时,管道将不会开始运行。
  • waitOnChildComplete:如果为true,则当一个管道的输入资源是该管道的输出时,该管道将不会开始运行,除非该子管道正在等待该管道完成。
retentionPolicy

可选地指定是否应在特定天数后删除管道运行数据。此外,提供了保持最小数量的管道运行数据的能力:

  • maxAgeDays:指定删除管道运行数据的天数(不能超过)系统级别设置)。将此值设置为0表示无限保留。
  • minRuns:指定要保留的管道运行数据的最小数量,无论其年龄如何(不能超过)系统级别设置)。

有关更多信息,请参见设置保留策略

jfrogCliVersion

可以选择指定1来使用JFrog CLI v1,或者指定2来在管道中的步骤中使用JFrog CLI v2。目前默认是v1。

集成

指定集成,类似于集成部分,作为Pipeline中所有步骤的输入。列表中可能没有列出这里列出的集成集成部分。

有关更多信息,请参见管道集成

用于集成的管道级声明适用于所有步骤。您不能选择不使用这些集成的步骤。

input2022世界杯阿根廷预选赛赛程Resources

指定资源,类似于2022世界杯阿根廷预选赛赛程input2022世界杯阿根廷预选赛赛程Resources部分,作为Pipeline中所有步骤的输入。2022世界杯阿根廷预选赛赛程列表中列出的资源可能没有列出input2022世界杯阿根廷预选赛赛程Resources或出put2022世界杯阿根廷预选赛赛程Resources此管道中任何步骤的部分。中的每个资源input2022世界杯阿根廷预选赛赛程Resources应指定为名字分支(如果来自多分支管道源)和触发选项可以设置为控制对资源的更新是否应该触发管道中的步骤。

有关更多信息,请参见利用资源2022世界杯阿根廷预选赛赛程

输入资源的管道级声明适用于所有步骤。2022世界杯阿根廷预选赛赛程您不能选择不使用这些输入资源的步骤。2022世界杯阿根廷预选赛赛程

output2022世界杯阿根廷预选赛赛程Resources

指定资源,类似于ou2022世界杯阿根廷预选赛赛程tput2022世界杯阿根廷预选赛赛程Resources部分,作为Pipeline中所有步骤的输入。2022世界杯阿根廷预选赛赛程列表中列出的资源可能没有列出input2022世界杯阿根廷预选赛赛程Resources或出put2022世界杯阿根廷预选赛赛程Resources此管道中任何步骤的部分。中的每个资源input2022世界杯阿根廷预选赛赛程Resources应指定为名字分支(如果来自多分支管道源)。

有关更多信息,请参见利用资源2022世界杯阿根廷预选赛赛程

输出资源的管道级声明适用于所有步骤。2022世界杯阿根廷预选赛赛程您不能选择不使用这些输出资源的步骤。2022世界杯阿根廷预选赛赛程

任何步骤都可以覆盖管道的默认值运行时如果需要配置它自己的运行时选择。

管道的步骤

每个命名管道声明一个命名的集合一步阻塞将执行的管道。

每个的基本格式一步宣言是:

标签 描述
名字 可在其他步骤中引用的步骤的友好名称。步骤名称在同一管道中必须是唯一的。
类型

指定步骤类型的预定义字符串。

有关更多信息,请参见管道的步骤

配置

开始步骤所需的设置部分类型.这可能包括:

  • 步骤本地的环境变量
  • 该步骤的任何运行时配置
  • 任何触发输入步骤或资源2022世界杯阿根廷预选赛赛程
  • 该步骤输2022世界杯阿根廷预选赛赛程出的任何资源
  • 该步骤使用的任何集成
  • 步骤类型所需的所有设置
执行 指定要为步骤的每个执行阶段执行的操作。

例如,下面是一个简单的两步序列。每个都使用通用的Bash向控制台输出文本的步骤:

步骤:-名称:step_1类型:Bash配置:inputResources: -名称:my_Git_Rep2022世界杯阿根廷预选赛赛程ository #触发代码执行提交执行:onExecute: - echo "Hello World!"—名称:step_2类型:Bash配置:inputSteps:—名称:step_1 #在前一步执行后执行此步骤:onExecute:—echo "Goodbye World!"

管道配置文件策略

管道配置文件中可以定义一个或多个管道,但单个管道的定义不能分散在多个文件中。管道配置文件名可以是您选择的任何形式,尽管单个文件的约定是pipelines.yml

关于管道需要注意的一些事情:

  • 你可以有很多管道配置文件随你的便。例如,我们的客户通过以下不同的方式管理配置:
    • 维护一个中央DevOps存储库,并在该存储库中保存所有项目的所有管道配置文件。
    • 保留构建每个微服务的管道配置文件,其中包含微服务的源代码。
    • 将管道步骤和资源分离到单独的配置文件中(例如:2022世界杯阿根廷预选赛赛程pipelines.steps.ymlpipelines.2022世界杯阿根廷预选赛赛程resources.yml分别)。


  • 没有标签
版权所有©2022 JFrog Ltd.