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





概述

这个例子演示了如何使用JFrog pipelines定义和执行简单的管道。一个示例管道DSL用于展示如何使用集成、资源和步骤来构造一个简单的自动化工作流。2022世界杯阿根廷预选赛赛程

这个管道示例演示了以下内容:

  • 创建一个GitHub集成
  • 添加一个管道来源
  • 创建一个GitRepo触发器,它将在源代码控制存储库的内容更改时触发一个步骤。
  • 使用input2022世界杯阿根廷预选赛赛程Resources和inputSteps来设置步骤和资源之间的依赖关系。2022世界杯阿根廷预选赛赛程
  • 使用环境变量(如。res_myFirstRepo_commitSha美元)从中提取信息input2022世界杯阿根廷预选赛赛程Resources
  • 使用运行状态将信息传递给运行的下游步骤。
  • 使用管道状态将信息传递给后续运行。
  • 通过资源连接依赖的管道2022世界杯阿根廷预选赛赛程
页面内容

在这个快速入门中,管道的成功运行是这样的:

PIPE_HelloWorld_1


PIPE_HelloWorld_AltImage


开始之前

在尝试快速入门之前,请确保您具备:

  • GitHub账户。这是分叉示例存储库所必需的。
  • 一个卡塔尔世界杯赛程时间表 云帐户,或自托管JFrog管道
  • 至少一个节点池。这是所有管道步骤将在其中执行的节点集。有关更多信息,请参见管理管道节点池
  • Artifactory中的用户帐户,具有至少一个二进制存储库的部署权限。

运行这个管道

执行以下步骤来运行该管道:

  1. 叉库

    此示例的管道DSL可在JFrog GitHub仓库存储库中的JFrogGitHub帐户。

    DSL文件是一个包含管道定义的yaml文件。这个例子使用了两个YAML文件:
    • jfrog-pipelines-hello-world.yml,其中包含本例中管道的声明
    • values.yml控件所需的值jfrog-pipelines-hello-world.yml文件。

    有关yml文件中使用的所有资源、管道和步骤的完整分解,请参见2022世界杯阿根廷预选赛赛程jfrog-pipelines-hello-world.yml下面的部分。

    Fork这个存储库到你的账户或组织。这一点很重要,因为你需要管理员访问作为Pipeline source或GitRepo资源使用的存储库,以便向这些存储库添加webhook并侦听更改事件。2022世界杯阿根廷预选赛赛程

  2. 登录


    用您的Artifactory证书登录JFrog平台。

  3. 添加集成


    政府|管道|集成添加一个积分
    GitHub集成此集成用于添加Pipeline源,以及定义在values.yml,将Github连接到pipeline。写下GitHub集成的名称。

  4. 更新values.yml


    管道配置在值中可用。yml文件。在你的分支中编辑这个文件,并替换以下内容:

    标签

    描述

    例子

    gitProvider 提供在上一步中添加的Github集成的名称。 gitProvider: my_github
    路径 提供此存储库分支的路径。 路径:myuser /jfrog-pipelines-hello-world

    所有管道和资源名称在JFrog Pipelines项目中都是全局的。步骤和资源的名称在JFrog pipeline项目中必须2022世界杯阿根廷预选赛赛程是唯一的。

  5. 添加管道源

    管道源表示存储管道定义文件的git存储库。管道源通过类连接到存储库集成,这是我们在步骤3中添加的。
    1. 在左侧导航栏中,转到管理|管道|管道源.点击添加管道源然后选择从YAML.按照以下说明添加管道源这会自动将您的配置添加到平台中,并根据您的YAML创建管道。
    2. 管道源同步成功后,导航到管道|我的管道在左侧导航栏中查看新添加的管道。在这个例子中,my_first_pipelinemy_second_pipeline是我们管道的名称。


    3. 单击管道的名称。呈现管道的实时、交互式图表及其最近一次运行的结果。

  6. 执行管道


    现在您可以提交到repo来触发您的管道,或者通过UI手动触发它。管道中的步骤按顺序执行。


    一旦管道完成,就会列出新的运行。


    第一个管道的成功运行触发第二个管道的执行:



jfrog-pipelines-hello-world.yml

jfrog-pipelines-hello-world.yml文件由资源、管道和步骤组成,如下图所示2022世界杯阿根廷预选赛赛程:

2022世界杯阿根廷预选赛赛程

这个例子使用了以下类型的2022世界杯阿根廷预选赛赛程

GitRepo

一个GitRepo资源用于将JFrog pipeline连接到源代码控制存储库。将它添加到repo中会创建一个webhook,这样以后提交时就会自动创建一个带有webhook有效负载的新版本。

2022世界杯阿根廷预选赛赛程
-名称:myfirst strepo类型:GitRepo配置:# SCM集成存储库所在的位置gitProvider: {{Values.myRepo.gitProvider}} #存储库路径,包括org名称/repo名称路径:{{Values.myRepo.path}} #manisha -jfrog/jfrog-pipeline -hello-world #替换为您的存储库名称branches: #指定哪些分支将触发依赖步骤,包括:master

标签

描述

必需的/可选

名字

myFirstRepo名字是GitRepo资源,指向包含构建映像所需的yaml文件和其他源代码的存储库。

该名称用于在步骤中引用资源,并且在JFrog Pipelines环境中的所有存储库中必须是唯一的。

要求

gitProvider

的名字GitHub集成.它的值是从值中检索的。yml文件。 要求
路径 从集成根目录到存储库的路径。它的值是从值中检索的。yml文件。 要求
分支机构
  • 包括——(可选)包含repo分支的正则表达式
  • 排除——(可选)从repo中排除分支的正则表达式

包括:主标记表明GitRepo资源正在监听主分支。

可选



定义一个GitRepo资源作为管道的触发器。

PropertyBag

一个PropertyBag资源用于将信息从一个管道传递到另一个管道,并以资源的格式为步骤提供环境变量。

PropertyBag资源可以将任何字符串作为属性,当键是步骤的输入时,这些字符串将作为环境变量可用。当它是输出时,步骤可以更改属性值或添加新属性值。

2022世界杯阿根廷预选赛赛程
—名称:myPropertyBag类型:PropertyBag配置:commitSha: 1 runID: 1

标签

描述

必需的/可选
名字

myPropertyBag名字是PropertyBag资源,也就是与Artifactory中的构建相关联的元数据。

要求

<字符串>

PropertyBag资源的属性。标签应该是一个有效的变量名(Bash或PowerShell),在这些步骤中,它是输入或输出,值是字符串。至少需要一个,允许多个属性。

要求

管道

这个例子使用了两个管道:

  • my_first_pipeline是第一个管道的名称,由3个线性步骤组成。最后一步输出PropertyBag类型的资源。
  • my_second_pipeline是第二个管道的名称,其中包含由第一个管道更新的PropertyBag资源触发的单个步骤

步骤

这两个my_first_pipelinemy_second_pipeline管道包含以下内容一步类型:

Bash

Bash是一个通用的步骤类型,允许执行任何shell命令。这个通用的步骤可以用来执行任何可以脚本化的操作,即使是没有与JFrog Pipelines集成的工具和服务。这是最通用的步骤,同时充分利用了生命周期提供的功能。

在我们的例子中:

  • p1_s1p1_s2p1_s3Bash步骤的名称是什么my_first_pipeline管道。
  • p2_s1中的Bash步骤的名称是my_second_pipeline管道。

对这些步骤进行了定义,以便它们按照相互依赖的顺序执行。这意味着每个步骤的执行都是由先前的先决步骤(或多个步骤)的成功完成触发的。在我们的示例中,步骤1 (p1_s1)的完成触发步骤2 (p1_s2)的执行,步骤2的完成触发步骤3 (p1_s3)的执行,以此类推,直到执行管道中的所有步骤。

步骤
管道:-名称:my_first_pipeline步骤:-名称:p1_s1类型:Bash配置:inputResources: #设置当有提交事件时触发的步骤到myfirst str2022世界杯阿根廷预选赛赛程epo -名称:myfirst strepo执行:onExecute: #输入资源的数据在步骤中作为环境变量可用- echo $ res_myfirst strepo_commitsha #接下来的两个命令添加变量到运行状态,这对于这个run #运行状态文档中的所有下游步骤都可用://www.si-fil.com/confluence/display/JFROG/Creating+Stateful+Pipelines#CreatingStatefulPipelines-RunState - add_run_variables current_runid=$run_id - add_run_variables commitSha=$ res_myfirststrepo_commitsha #该变量被写入p1_s3中的管道状态。#这是空的在第一次运行之前,将被设置为运行在随后数#管道运行状态文档://www.si-fil.com/confluence/display/JFROG/Creating +状态+管道# CreatingStatefulPipelines-PipelineState -回声“之前运行ID是prev_runid美元”——名称:p1_s2类型:Bash配置:inputSteps: -名称:p1_s1执行:onExecute: #演示env的可用性变量写入运行状态p1_s1 - echo $ current_runid -名称:p1_s3类型:Bash配置:inputSteps: - name: p1_s2 outputResources: - 2022世界杯阿根廷预选赛赛程name: myPropertyBag执行:onExecute: - echo $current_runid #将当前运行数写入管道状态- add_pipeline_variables prev_runid=$run_id #使用实用函数更新输出资源与触发此运行的commitSha #依赖管道可以配置为在此资源更新时触发#实用函数文档://www.si-fil.com/confluence/display/JFROG/Pipelines+Utility+Functions - write_output myPropertyBag commitSha=$commitSha runID=$current_runid - name: my_second_pipeline步骤:- name: p2_s1类型:Bash配置:inputResources: #设置myProper2022世界杯阿根廷预选赛赛程tyBag更新时触发的步骤- name: myPropertyBag执行:onExecute: #从输入资源中检索commitSha - echo " commitSha is $res_myPropertyBag_commitSha"

配置

指定所有步骤执行环境的可选配置选择。

标签

使用说明

必需的/可选

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

一个命名资源的集合,将被一个步骤用作输入。2022世界杯阿根廷预选赛赛程

在这个例子中:

  • 一步p1_s1在第一个管道中,当存在提交事件时触发myFirstRepo,这是GitRepo资源的名称。
  • 一步p2_s1在第二个管道中,当myPropertyBag完成资源更新。
可选
inputSteps

已命名步骤的集合,其完成将触发此步骤的执行。

在这个例子中:

  • 步骤p1_s1的完成会触发步骤p1_s2的执行。
  • 步骤p1_s2的完成会触发步骤p1_s3的执行。
可选
output2022世界杯阿根廷预选赛赛程Resources

将由某个步骤生成或更改的命名资源的集合。2022世界杯阿根廷预选赛赛程

可选

执行

声明一组shell命令序列,以便在不同的执行阶段执行:

标签

使用说明

必需的/可选

onExecute 步骤中要执行的主要命令 可选



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