在你开始之前
在尝试这种快速开始之前,确保你已经:
- 一个GitHub帐户。这是分叉示例存储库所必需的。
- 一个JFrog平台帐户。
- 将Artifactory设置为Docker注册表。有关更多信息,请参见开始使用Artifactory作为Docker注册表而且码头工人注册表.
- 安装和配置JFrog分发版。
- 生成、上传和部署GPG密钥JFrog分布。
- 至少有一个pipes节点池。这是所有管道步骤将在其中执行的节点集。有关更多信息,请参见管理管道节点池.
- 成功运行Docker构建和推送管道。
运行这个例子
执行以下步骤来运行该管道:
登录
用Artifactory证书登录JFrog平台。添加集成
去应用|管道|集成来添加这些集成:
- GitHub集成:此集成用于添加Pipeline源。
myGithub
是本例中使用的GitHub集成的名称。 - 分布的集成:这个集成将您的JFrog Pipeline Automation平台连接到一个分发实例。
myDist
是本例中使用的分发集成的名称。 - Artifactory集成:该集成用于与Artifactory进行身份验证,以获取包括Docker映像在内的工件,并维护构建信息。
myArtifactory
是本例中使用的Artifactory集成的名称。
- GitHub集成:此集成用于添加Pipeline源。
- 写下Artifactory和Distribution集成的名称,因为它们是所需要的下一个步骤.确保名字是唯一的,容易记住。
叉GitHub库
此示例的pipes DSL可在jfrog-pipelines-cd-sample库的JFrogGitHub帐户。
DSL文件是一个包含管道定义的yaml文件。该示例使用了两个YAML文件,
pipelines.yml
而且values.yml
.管道。Yml文件包含所有资源和工作流步骤的声明。2022世界杯阿根廷预选赛赛程的values.yml
文件控件所需的值pipelines.yml
文件。有关yml文件中使用的所有资源、管道和步骤的完整分解,请参见2022世界杯阿根廷预选赛赛程pipelines.yml下面的部分。叉这个存储库到你的账户或组织。这一点很重要,因为您需要管理访问被用作Pipeline Sources或GitRepo资源的存储库,这是向这些存储库添加web钩子并侦听更改事件所必需的。2022世界杯阿根廷预选赛赛程
更新values.yml
管道配置可在values.yml文件。如果需要,e说这个文件在你方的本回购中替换以下内容:
标签 描述 例子 gitProvider
提供您在上一步中添加的Github集成的名称。 gitProvider: myGithub
sourceArtifactory
提供你的Artifactory集成。 sourceArtifactory: myArtifactory
sourceDistribution
提供分发集成。 sourceDistribution:
myDist
在JFrog管道中,所有管道名称都是全局的.您的管道和资源的名称在JFrog管道中必须是唯一的。2022世界杯阿根廷预选赛赛程
添加管道源
的管道来源代表Git repo,其中存储了我们的pipeline定义文件。管道源通过连接到存储库集成,这是在上一步添加的。
在左侧导航栏中,转到管理|管路|管路来源.点击添加管道源然后选择从YAML.按照指令添加一个管道源.
管道源同步成功后,导航到管道|我的管道在左侧导航栏中看到新添加的管道。在这个例子中,
cd_
demo_release_mgmt
是我们管道的名字。单击管道的名称。这将呈现管道及其最新运行结果的实时交互式图表。
执行管道
你现在可以承诺回购触发您的管道,或者手动触发它通过UI。管道中的步骤按顺序执行。如果节点池有多个可用的构建节点,则可以并行执行多个步骤。
pipelines.yml
的pipelines.yml
文件由资源、管道和步骤组成,如下图所示2022世界杯阿根廷预选赛赛程:
2022世界杯阿根廷预选赛赛程
的类型2022世界杯阿根廷预选赛赛程:
BuildInfo
一个BuildInfo
资源是与Artifactory中的构建相关联的元数据。
JFrog pipeline自动创建BuildInfo的任何构建步骤,如MvnBuild,NpmBuild,GradleBuild,或DockerBuild用于生成包。BuildInfo通过PublishBuildInfo步骤,通过在构建步骤中设置标志,或通过在步骤中提供该资源,如NpmPublish,GoPublishModule,GoPublishBinary,DockerPush.
#构建包的构建信息-名称:gosvc_promoted_build_info类型:BuildInfo配置:sourceArtifactory: {{. values。artifactoryIntegration}} buildName: dbp_build buildNumber: 1
标签 |
描述 |
必需的/可选 |
---|---|---|
的名字 |
这个名称用于引用步骤中的资源,并且必须在JFrog pipeline环境中的所有存储库中唯一。 |
要求 |
sourceArtifactory |
|
要求 |
buildName |
|
可选 |
buildNumber | 要与BuildInfo关联的构建的编号。 | 可选 |
ReleaseBundle
一个ReleaseBundle
资源指定Artifactory中的一组工件,这些工件作为JFrog发行发行包.
此资源可用于CreateReleaseBundle或DistributeReleaseBundle.此资源可用于表示两者已签名和未签名的发布包.
- name: release_bundle type: ReleaseBundle configuration: sourceDistribution: {{. values . name: release_bundle。名称:demo_rb版本号:v1.0.0- name: signed_bundle type: ReleaseBundle configuration: sourceDistribution: {{ .Values.distributionIntegration }} name: demo_rb version: v1.0.0
标签 |
描述 |
必需的/可选 |
---|---|---|
的名字 |
release_bundle 而且signed_bundle 是ReleaseBundle 2022世界杯阿根廷预选赛赛程资源。而release_bundle 是发布包,signed_bundle 是发布包的签名版本。 |
要求 |
sourceDistribution |
myDist是分布的集成. |
要求 |
版本 |
发布包的版本号。 |
要求 |
DistributionRule
一个DistributionRuleresource是可应用的Destination规则集发布发布包使用JFrog分布。
—name: distribution_rules type: DistributionRule configuration: sourceDistribution: {{. values。distributionIntegration}} serviceName: "*" siteName: "*" cityName: "*" countryCodes: - "*"
标签 |
描述 |
必需的/可选 |
---|---|---|
的名字 |
distribution_rules 名字是DistributionRule资源。 |
要求 |
sourceDistribution |
myDist是分布的集成. | 要求 |
名 |
带有通配符模式的Artifactory Edge Node服务名称。 | 要求 |
siteName |
带有通配符模式的Artifactory Edge Node站点名称。 | 要求 |
某个 |
带有通配符模式的Artifactory Edge Node城市名称。 | 要求 |
countryCodes |
Artifactory Edge Node使用通配符模式进行国家编码。 | 要求 |
管道
cd_demo_release_mgmt
该管道定义用于签署发布包并将其发布到Artifactory边缘节点。
步骤
的cd_demo_release_mgmt
Pipeline由以下原生程序组成步骤:
CreateReleaseBundle
的CreateReleaseBundle原生步骤产生发布包分发给Artifactory边缘节点.该步骤可用于创建已签名或未签名版本包。
- name: bundle type: CreateReleaseBundle configuration: releaseBundleName: demo_rb releaseBundleVersion: v1.0。${run_number} dryRun: false sign: false description: "some random test description" input2022世界杯阿根廷预选赛赛程Resources: - name: gosvc_promoted_build_info trigger: false outputResources: - name: release_bundle releaseNotes: syntax: markdown content: | ## Heading * Bullet * Points
标签 |
使用的描述 |
必需的/可选 |
---|---|---|
的名字 |
包 标识的名称是CreateReleaseBundle 的一步。 |
要求 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定要么一个命名BuildInfo资源(年代)或一个Aql资源。 如果BuildInfo |
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
必须指定一个ReleaseBundle资源。 的 |
要求 |
releaseBundleName |
发布包的字母数字名称。demo_rb 是本例中使用的名称。 |
要求 |
releaseBundleVersion |
版本包的版本字符串 | 要求 |
dryRun |
当设置为 默认是真实的。 |
可选 |
标志 |
指定版本包版本是否已签名。 默认是假的。 |
可选 |
storeAtSourceArtifactory |
控制是否在源Artifactory中存储发布包版本同时签署。 | 可选 |
描述 |
发布包的描述。 | 可选 |
releaseNotes |
描述发布包版本的发布说明。
|
可选 |
SignReleaseBundle
的SignReleaseBundle原生步骤签署一个发布包,准备将其分发到边缘节点。
—name: sign type: SignReleaseBundle configuration: inputR2022世界杯阿根廷预选赛赛程esources:—name: release_bundle outputResources:—name: signed_bundle
标签 |
使用的描述 |
必需的/可选 |
---|---|---|
的名字 |
标志 标识的名称是SignReleaseBundle 的一步。 |
要求 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定一个ReleaseBundle资源的 这一步接受 |
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
必须指定一个ReleaseBundle资源。这个ReleaseBundle是用 这一步指定 |
要求 |
DistributeReleaseBundle
的DistributeReleaseBundle原生步骤触发的分布发布包到一个Artifactory边缘节点.此步骤需要一个已签名的发布包和一个或多个分发规则才能成功执行.
—name:分发类型:DistributeReleaseBundle配置:dryRun: false inputResources:—name: signed_bun2022世界杯阿根廷预选赛赛程dle—name: distribution_rules . properties
标签 |
使用的描述 |
必需的/可选 |
---|---|---|
的名字 |
分布是标识DistributeReleaseBundle 的一步。 |
要求 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定一个ReleaseBundle资源(signed_bundle)和一个DistributionRule资源(distribution_rules). | 要求 |
dryRun |
控制是否应该进行试运行,以测试发布包是否可以分发到匹配分发规则的Edge节点。 默认为true。 |
可选 |