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





概述

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


JFrog管线使用自己的声明性语言 基于YAML语法的管道DSL,来描述工作流。在用管道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世界杯阿根廷预选赛赛程宣言是:

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

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

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

配置

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

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

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

2022世界杯阿根廷预选赛赛程资源:—name: my_Git_Repository type: GitRepo configuration: gitProvider: my_GitHub_Integration path: ~johndoe/demo分支:include: master - name: my_Docker_Image type: Image配置:registry: my_Docker_Registry_Integration imageName: johndoe/demo_image imageTag: latest

管道部分

管道部分定义工作流,由步骤和它们之间的依赖关系组成。

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

标签 描述
的名字

资源的友好名称,在项目中惟一。

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


的集合一步部分,指定要执行的步骤。

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

管道配置

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

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

标签 描述
environmentVariables

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

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

  • JFROG_CLI_BUILD_NAME:如果设置,管道将使用此值而不是收集的构建信息的默认管道名称。
  • JFROG_CLI_BUILD_NUMBER:如果设置,管道将使用此值而不是收集的生成信息的默认运行号。
  • USE_LOCAL_JFROG_CLI:如果设置为真正的,主机或镜像中的本地JFrog CLI运行时configuration)被用来代替JFrog管线打包的版本。不建议这样做,本机步骤可能无法与本地JFrog CLI版本一起运行。
  • JFROG_XRAY_URL:如果jfrogCliVersion如果设置为2,这个变量可以用来指定一个x射线URL,以便在配置带有Artifactory集成的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。

集成

指定集成,类似于集成部分,作为管道中所有步骤的输入。中列出的集成可能没有列出集成这个管道中一个步骤的部分。

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

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

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

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

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

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

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

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

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

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

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

管道的步骤

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

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

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

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

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

配置

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

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

例如,这里有一个简单的两步序列。每个都使用通用Bash步骤将文本输出到控制台:

步骤:—name: step_1 type: Bash配置:inputResources:—name: m2022世界杯阿根廷预选赛赛程y_Git_Repository #代码提交执行时触发执行:onExecute: - echo "Hello World!"—name: step_2 type: Bash configuration: inputSteps:—name: step_1 #在前一步执行后执行此步骤:onExecute: - echo "Goodbye World!"

流水线配置文件策略

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

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

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


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