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





概述

这个管道演示了一个管道的定义,该管道构建一个Docker Image并将其推送到Artifactory,然后发布BuildInfo。一个管道DSL用于展示如何使用集成、资源和步骤来构造一个简单的自动化工作流。2022世界杯阿根廷预选赛赛程

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

  • 创建一个GitHub而且Artifactory集成。
  • 添加一个管道来源
  • 创建一个GitRepo触发器,当源代码控制存储库的内容发生更改时触发一个步骤。
  • 使用一个图像将Docker映像的引用添加到管道中。
  • 使用DockerBuild而且DockerPush构建和推送docker映像的本机步骤。
  • 使用tPublishBuildInfo本机步骤发布BuildInfo到Artifactory,和tPromoteBuild本机步骤,以促进BuildInfo。
  • 使用inputReso2022世界杯阿根廷预选赛赛程urces和inputSteps设置步骤和资源之间的依赖关系。
  • 使用outputReso2022世界杯阿根廷预选赛赛程urces。

页面内容

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


教程视频



开始之前

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

  • 一个GitHub账户。这是派生示例存储库所必需的。
  • 一个JFrog平台帐户,或自托管JFrog管道
  • Artifactory中的一个用户帐户,具有对至少一个二进制存储库的部署权限。
  • 创建一个本地Docker存储库将Artifactory成立为一家码头工人注册表
  • 至少一个节点池。这是所有管道步骤将在其中执行的节点集。有关更多信息,请参见管理管路节点池

运行这个例子

执行以下步骤来构建和推送Docker映像:

  1. Fork存储库

    本例的管线DSL可在jfrog-pipelines-docker-sample存储库中的JFrogGitHub帐户。

    DSL文件是一个包含管道定义的yaml文件。这个例子使用了一个YAML文件,pipelines.yml.该文件包含所有资源和工作流步骤的声明。2022世界杯阿根廷预选赛赛程有关yml文件中使用的所有资源、管道和步骤的完整分解,请参见2022世界杯阿根廷预选赛赛程pipelines.yml下面的部分。

    Fork这个存储库到您的帐户或组织。这一点很重要,因为您需要对作为Pipeline Sources或GitRepo资源的存储库进行管理访问,以便将webhook添加到这些存储库并侦听更改事件。2022世界杯阿根廷预选赛赛程

  2. 登录到Artifactory

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

  3. 添加集成

    a.转至政府|管道|集成添加两个积分

    • GitHub集成:此集成用于添加Pipeline源,以及中定义的GitRepo资源pipelines.yml
    • Artifactory集成:此集成用于与Artifactory进行身份验证,以将Docker映像推送到docker-localArtifactory中的存储库。

    b.写下GitHub和Artifactory集成的名称,因为这些是下一个步骤.确保名字是唯一的,容易记住。

  4. 更新管道。yml文件

    管道配置可在pipelines.yml文件。编辑此文件在你的Git回购的fork中替换以下内容:

    标签 描述 例子
    gitProvider 提供在上一步中添加的Github集成的名称。 gitProvider: my_github
    路径 提供这个存储库的分支的路径。 路径:myuser / repo-name
    注册表 提供您在上一步中添加的Artifactory集成的名称。 注册中心:艺术
    imageName 提供Docker映像路径和名称。

    docker.artprod.mycompany.com/ docker_local /菲律宾
    在那里,docker.artprod.mycompany.com/ docker_local图像路径和菲律宾映像名称。

    sourceArtifactory 提供你的Artifactory集成。 sourceArtifactory:艺术

    所有管道定义都是全局的JFrog管道在一个项目中。管道和资源的名称在内部必须是唯一的2022世界杯阿根廷预选赛赛程项目位于JFrog管道。

  5. 添加管道源

    管道来源代表存储管道定义文件的Git repo。管道源通过控件连接到存储库集成,这是我们在上一步中添加的。

    遵照指示添加管道源把它指向pipelines.yml在你的回购分支中。这将自动将您的配置添加到平台,并根据您的YAML创建管道。管道.yml解析文件,并按照配置添加资源、步骤和管2022世界杯阿根廷预选赛赛程道。

    管道源同步成功后,导航到管道,我的管道在左侧导航栏查看新添加的管道。在这个例子中,pipeline_dbp是我们管道的名称。

    单击管道的名称。呈现管道及其最新运行结果的实时交互式图表。

  6. 执行管道

    您可以通过向Git存储库提交更改来触发管道,也可以通过UI手动触发管道。管道中的步骤按顺序执行。如果节点池有多个可用的构建节点,则可以并行执行多个步骤。

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





pipelines.yml

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

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

本例使用以下类型的2022世界杯阿根廷预选赛赛程

GitRepo

一个GitRepo资源用于将JFrog管线连接到源代码控制存储库。添加它将创建一个webhook到repo中,以便将来的提交将自动创建一个带有webhook有效负载的新版本。

2022世界杯阿根廷预选赛赛程
- name: dbp_repo type: GitRepo configuration: gitProvider: my_github # <——替换为您的集成路径:jfrog/jfrog- pipelpipes -docker-sample # <——替换为您的存储库名称branches: include: master

标签

描述

必需的/可选
的名字

dbp_repo是名字吗GitRepo资源指向包含Dockerfile和构建映像所需的其他源代码的存储库。

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

要求

gitProvider

的名称GitHub集成 要求
路径 存储库从集成根开始的路径。 要求
分支机构
  • 包括——(可选)正则表达式,包括来自repo的分支
  • 排除——(可选)正则表达式,从repo中排除分支

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

可选



图像

一个图像resource用于将Docker映像的引用添加到管道中。Image资源既可以用作输入,也可以用作输出。DockerBuild之类的步骤会将其作为输出生成,而DockerPublish之类的步骤会将其作为输入发布到Docker注册表。在我们的例子中,它被用作DockerPush的outputResource的一步。

2022世界杯阿根廷预选赛赛程
- name: dbp_image type:镜像配置:registry: art # <——替换为您的artifactory集成sourceRepository: docker_local # <——如果注册表是artifactory imageName: docker.artprod.mycompany.com/docker_local/dbp # <——替换为您的图像路径和名称imageTag:最新autoPull: true

标签

描述

必需的/可选

的名字 dbp_image是名字吗用于标识资源。 要求
注册表 艺术是一个名字吗Docker注册表集成 要求
sourceRepository docker_local是Artifactory中图像将被发布到的存储库的名称。 如果注册表在JFrog Artifactory,则需要
imageName Docker映像的文件路径,格式为imageRepo/imageName。 要求
imageTag Docker映像的初始版本的版本标记。 要求
autoPull

真正的,图像自动拉到运行该步骤的机器上。

默认为

可选


BuildInfo

BuildInfo时自动创建DockerBuildStep用于生成包。然后,BuildInfo被发布到已配置的Artifactory repo (sourceArtifactory:艺术)透过PublishBuildInfo方法中提供该资源DockerPush的一步。

2022世界杯阿根廷预选赛赛程
—name: dbp_build_info type: BuildInfo configuration: sourceArtifactory: art buildName: dbp_build buildNumber: 1—name: dbp_promoted_build_info type: BuildInfo configuration: sourceArtifactory: art buildName: dbp_build buildNumber: 1

标签

描述

必需的/可选
的名字

dbp_build_info而且dbp_promoted_build_info名字是BuildInfo2022世界杯阿根廷预选赛赛程资源,也就是与Artifactory中的构建相关联的元数据。

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

要求

sourceArtifactory

艺术是名字吗Artifactory集成

要求
buildName

dbp_build是t要与BuildInfo相关联的建筑物的名称。

可选
buildNumber 要与BuildInfo关联的构建的编号。 可选

管道

pipeline_dbp,用于构建和推送Docker映像的管道定义。

步骤

pipeline_dbp管道包含以下内容本机的步骤

DockerBuild

DockerBuildnative步骤执行一个构建,从Git源存储库中的Dockerfile生成Docker映像。

此步骤从Docker镜像文件中构建Docker映像GitRepo源存储库资源。的名称和目录Dockerfile属性要处理的命令码头工人建造命令,以及结果图像的名称和标记。映像是在构建节点上构建的,关于映像的信息存储在运行状态中。

步骤
—name: docker_build type: DockerBuild configuration: affinityGroup: dbp_group dockerFileLocation:。dockerFileName: Dockerfile dockerImageName: docker.artprod.mycompany.com/docker_local/dbp #替换为您的图像路径和名称dockerImageTag: ${run_number} inputResources: - name: dbp_repa2022世界杯阿根廷预选赛赛程tions: - name: art # <——替换为您的artifactory集成

标签

使用说明

必需的/可选

的名字

docker_build标识步骤的名称。

当这个步骤被分配为下一个步骤的输入时,会使用这个名称,docker_push

要求
affinityGroup

必须指定与后续指定的相同的亲和关系组字符串DockerPush的一步。

这两个DockerBuild而且DockerPush步骤分配给dbp_groupaffinityGroup所以它们有相同的状态如果不是,DockerBuild步骤的输出将对DockerPush步骤不可用。

可选
dockerFileLocation 包含Dockerfile或具有Docker构建配置的文件的目录 要求
dockerFileName Dockerfile的名称 要求
dockerImageName

要创建的Docker映像的名称。这可以使用环境变量设置,也可以使用参数触发运行。

要求
dockerImageTag

要创建的Docker映像的标记。这可以使用环境变量设置,也可以使用参数触发运行。

在我们的例子中,图像的标记被设置为管道的运行号,这是当前正在执行的运行号。

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

必须指定:

  • 一个GitRepo资源(包含DockerFile)

此步骤接受' dbp_repo '作为参数inputResource来基于所提供的Dockerfile构建映像。

可选地,还可以指定:

  • 一个图像资源的要包含在构建映像中的基本映像
  • 一个文件规范资源,该资源指定在构建的映像中包含哪些文件。这些文件将自动复制到dockerFileLocation。
必需的/可选
集成 必须指定Artifactory集成 要求


DockerPush

DockerPushnative step将指定的Docker Image推到Artifactory。

步骤
—name: docker_push type: DockerPush配置:affinityGroup: dbp_group targetRepository: docker-local integrations:—name: art# <——替换为您的artifactory integration inputSteps:—name: docker_build outputResources:—name: dbp_image2022世界杯阿根廷预选赛赛程

标签

使用说明

必需的/可选

的名字 docker_push标识步骤的名称。 要求
affinityGroup 必须指定与前一个中指定的相同的亲和组字符串吗DockerBuild的一步。 可选
targetRepository Artifactory中Docker存储库的名称。 要求
集成 必须指定Artifactory集成 要求
inputSteps

必须指定命名DockerBuild进入同一个亲和组。

前一个的输出(结果)docker_buildstep用作此步骤的inputStep。

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

可指定图像资源。如果指定了imageTag属性将使用dockerImageTag前面提到的DockerBuild的一步。

此步骤将' dbp_image '输出为anoutputResource如果需要,可以使用它来触发下游相关步骤或管道。

可选

可能需要


PublishBuildInfo

PublishBuildInfo一步发布BuildInfo附加到图像到Artifactory。BuildInfo为构建提供了一个清单,包括关于模块、依赖项和其他环境变量的元数据。

BuildInfo还可以通过任何特定于语言的发布步骤发布autoPublishBuildInfo标签设置为true。

步骤
—name: publish_dbp_build type: PublishBuildInfo configuration: inputSteps:—name: docker_push outputRes2022世界杯阿根廷预选赛赛程ources:—name: dbp_build_info

标签

使用说明

必需的/可选

的名字 publish_dbp_build是名字吗这就确定了步骤。 要求
inputSteps

必须指定的名称DockerPush的一步。上一步的输出(结果)被用作这一步的inputStep。

步骤必须已经建立autoPublishBuildInfo为true。

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

必须指定BuildInfo要发布的资源。

要求


PromoteBuild

PromoteBuild原生步促进thedbp_build_infoBuildInfo并将相关工件从一个Artifactory存储库移动或复制到另一个。

这一步需要一个PublishBuildInfo步骤与前一步一样BuildInfo资源作为成功执行的输入。

步骤
—name: promote_dbp_build type: PromoteBuild configuration: targetRepository: demo-pipelines integrations:—name: art inputRes2022世界杯阿根廷预选赛赛程ources:—name: dbp_build_info outputResources:—name: dbp_promoted_build_info

标签

使用说明

必需的/可选

的名字 promote_dbp_build标识步骤的名称。 要求
targetRepository demo-pipelines是t在Artifactory中推广构建到的存储库的名称。 要求
集成 必须指定Artifactory集成 要求
input2022世界杯阿根廷预选赛赛程Resources 必须指定一个命名的BuildInfo资源的buildName而且buildNumber属性标识要提升的构建 要求
output2022世界杯阿根廷预选赛赛程Resources 必须指定一个命名的BuildInfo资源映射到提升的构建。BuildInfo将被更新buildName而且buildNumber输入BuildInfo资源的targetRepo价值是targetRepository 要求
  • 没有标签
版权所有©2023 JFrog Ltd。