开始之前
在尝试快速入门之前,请确保您具备:
- GitHub账户。这是分叉示例存储库所必需的。
- 一个JFrog平台帐户。
- 将Artifactory设置为Docker注册表。有关更多信息,请参见开始使用Artifactory作为Docker注册表和码头工人注册表.
- 已经安装并配置了JFrog发行版。
- 生成、上传和部署GPG密钥用于JFrog发行版。
- 至少一个Pipelines节点池。这是所有管道步骤将在其中执行的节点集。有关更多信息,请参见管理管道节点池.
- 成功运行Docker构建和推送管道。
运行本例
执行下面的步骤来运行这个管道:
登录
用您的Artifactory证书登录JFrog平台。添加集成
去应用|管道|集成来添加这些集成:
- GitHub集成:此集成用于添加Pipeline源。
myGithub
是本例中使用的GitHub集成的名称。 - 分布的集成:这个集成将您的JFrog Pipeline Automation平台连接到一个Distribution实例。
myDist
是本示例中使用的Distribution集成的名称。 - Artifactory集成此集成用于与Artifactory进行身份验证,以获取包括Docker映像在内的工件,并维护构建信息。
myArtifactory
是本例中使用的Artifactory集成的名称。
- GitHub集成:此集成用于添加Pipeline源。
- 写下Artifactory和Distribution集成的名称,因为这些是必需的下一个步骤.确保名字是唯一的,容易记住。
Fork GitHub repository
此示例的管道DSL可在jfrog-pipelines-cd-sample存储库中的JFrogGitHub帐户。
DSL文件是一个包含管道定义的yaml文件。这个例子使用了两个YAML文件,
pipelines.yml
和values.yml
.管道。Yml文件包含所有资源和工作流步骤的声明。2022世界杯阿根廷预选赛赛程的values.yml
文件控件所需的值pipelines.yml
文件。有关yml文件中使用的所有资源、管道和步骤的完整分解,请参见2022世界杯阿根廷预选赛赛程pipelines.yml下面的部分。Fork这个存储库到你的账户或组织。这一点很重要,因为您需要管理员访问作为Pipeline source或GitRepo资源使用的存储库,这需要向这些存储库添加webhook并侦听更改事件。2022世界杯阿根廷预选赛赛程
更新values.yml
管道配置可在values.yml文件。如有需要,编辑这个文件在这个repo的分支中替换以下内容:
标签 描述 例子 gitProvider
提供在上一步中添加的Github集成的名称。 gitProvider: myGithub
sourceArtifactory
提供你的Artifactory集成。 sourceArtifactory: myArtifactory
sourceDistribution
提供您的分销集成。 sourceDistribution:
myDist
所有管道名称在JFrog管道中都是全局的.管线和资源的名称在JFrog管线中必须是唯一的。2022世界杯阿根廷预选赛赛程
添加管道源
的管道来源代表存储管道定义文件的Git仓库。管道源通过类连接到存储库集成,这是在上一步中添加的。
在左侧导航栏中,转到管理|管道|管道源.点击添加管道源然后选择从YAML.按照以下说明添加管道源.
管道源同步成功后,导航到管道|我的管道在左侧导航栏中可以看到新添加的管道。在这个例子中,
cd_
demo_release_mgmt
是我们管道的名称。单击管道的名称。这将呈现管道的实时交互式图表及其最近运行的结果。
执行管道
现在可以提交到触发您的管道,或者手动触发它通过UI。管道中的步骤按顺序执行。如果节点池中有多个可用的构建节点,则可以并行执行多个步骤。
pipelines.yml
的pipelines.yml
文件由资源、管道和步骤组成,如下图所示2022世界杯阿根廷预选赛赛程:
2022世界杯阿根廷预选赛赛程
这个例子使用了以下类型的2022世界杯阿根廷预选赛赛程:
BuildInfo
一个BuildInfo
资源是与Artifactory中的构建相关联的元数据。
JFrog Pipelines自动创建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 Pipelines环境中的所有存储库中必须是唯一的。 |
要求 |
sourceArtifactory |
|
要求 |
buildName |
|
可选 |
buildNumber | 与BuildInfo相关联的构建的编号。 | 可选 |
ReleaseBundle
一个ReleaseBundle
资源在Artifactory中指定一组工件,这些工件作为组件分发到Artifactory Edge节点JFrog发布包.
此资源可以与CreateReleaseBundle或DistributeReleaseBundle.此资源可用于表示两者已签名和未签名的发布包.
—名称:release_bundle类型:ReleaseBundle配置:sourceDistribution: {{. values。distributionIntegration}} name: 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 |
的名称分布的集成. |
要求 |
版本 |
发布包的版本号。 |
要求 |
DistributionRule
一个DistributionRule资源是可应用于的目标规则集发布一个发布包使用JFrog发行版。
—名称:distribution_rules类型:DistributionRule配置:sourceDistribution: {{. values。distributionIntegration}} serviceName: "*" siteName: "*" cityName: "*" countryCodes: - "*"
标签 |
描述 |
必需的/可选 |
---|---|---|
名字 |
distribution_rules 名字是DistributionRule资源。 |
要求 |
sourceDistribution |
的名称分布的集成. | 要求 |
名 |
带有通配符模式的Artifactory Edge Node服务名称。 | 要求 |
siteName |
带有通配符模式的Artifactory Edge Node站点名称。 | 要求 |
某个 |
使用通配符模式的Artifactory Edge Node城市名称。 | 要求 |
countryCodes |
Artifactory Edge节点国家代码使用通配符模式。 | 要求 |
管道
cd_demo_release_mgmt
,用于签署发布包并将其发布到Artifactory边缘节点的管道定义。
步骤
的cd_demo_release_mgmt
管道由以下本机组成步骤:
CreateReleaseBundle
的CreateReleaseBundle原生步骤产生发布包分发给人工边缘节点.该步骤可用于创建有签名或无签名发布包。
—名称:bundle类型:createrelasebundle配置:releaseBundleName: demo_rb releaseBundleVersion: v1.0。${run_number} dryRun: false sign: false description: "一些随机的测试描述" inputResources: - name: 2022世界杯阿根廷预选赛赛程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 |
当设置为 默认是真实的。 |
可选 |
标志 |
指定是否对发布包版本进行签名。 默认为false。 |
可选 |
storeAtSourceArtifactory |
控制是否在源Artifactory中存储发布包版本同时签署。 | 可选 |
描述 |
发布包的描述。 | 可选 |
releaseNotes |
描述发布包版本的发布说明。
|
可选 |
SignReleaseBundle
的SignReleaseBundle原生步骤签署一个发布包,准备将其分发到边缘节点。
—name:标识类型:SignReleaseBundle配置:inputResources:—name: rele2022世界杯阿根廷预选赛赛程ase_bundle outputResources:—name: signed_bundle
标签 |
使用说明 |
必需的/可选 |
---|---|---|
名字 |
标志 是标识的名称吗SignReleaseBundle 的一步。 |
要求 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定ReleaseBundle资源的 此步骤接受 |
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
必须指定ReleaseBundle资源。这个ReleaseBundle是用 此步骤指定 |
要求 |
DistributeReleaseBundle
的DistributeReleaseBundle原生步触发a的分布发布包到一个人工边缘节点.此步骤需要签名的发布包和一个或多个发布规则才能成功执行.
—name:分布式类型:DistributeReleaseBundle配置:dryRun: false inputResources:—name: signed_bu2022世界杯阿根廷预选赛赛程ndle—name: distribution_rules . properties
标签 |
使用说明 |
必需的/可选 |
---|---|---|
名字 |
分发是标识的名称DistributeReleaseBundle 的一步。 |
要求 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定ReleaseBundle资源(signed_bundle)和一个DistributionRule资源(distribution_rules). | 要求 |
dryRun |
控制这是否应该作为试运行,以测试发布包是否可以分发到与分发规则匹配的边缘节点。 默认为true。 |
可选 |