开始之前
在尝试这个快速入门之前,请确保您具备:
- 一个GitHub账户。这是派生示例存储库所必需的。
- 一个JFrog平台帐户。
- 将Artifactory设置为Docker注册表。有关更多信息,请参见开始使用Artifactory作为Docker注册表而且码头工人注册表.
- 安装和配置JFrog发行版。
- 生成、上传和部署GPG密钥用于JFrog Distribution。
- 至少有一个“Pipelines”节点池。这是所有管道步骤将在其中执行的节点集。有关更多信息,请参见管理管路节点池.
- 成功运行Docker构建和推送管道。
运行这个例子
执行以下步骤来运行这个管道:
登录
用您的Artifactory证书登录JFrog平台。添加集成
去应用|管道|集成来添加这些集成:
- GitHub集成:此集成用于添加Pipeline源。
myGithub
是本例中使用的GitHub集成的名称。 - 分布的集成:这个集成将您的JFrog Pipeline Automation平台连接到一个分发实例。
myDist
是本示例中使用的分发集成的名称。 - Artifactory集成:此集成用于与Artifactory进行身份验证,以获得包括Docker映像在内的工件,并维护构建信息。
myArtifactory
是本例中使用的Artifactory集成的名称。
- GitHub集成:此集成用于添加Pipeline源。
- 写下Artifactory和Distribution集成的名称,因为它们是下一个步骤.确保名字是唯一的,容易记住。
Fork GitHub仓库
本例的管线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 Sources或GitRepo资源使用的存储库进行管理访问,这是向这些存储库添加webhook并侦听更改事件所必需的。2022世界杯阿根廷预选赛赛程
更新values.yml
管道配置可在values.yml文件。如有需要,eDit这个文件在本次回购的fork中,替换以下内容:
标签 描述 例子 gitProvider
提供在上一步中添加的Github集成的名称。 gitProvider: myGithub
sourceArtifactory
提供你的Artifactory集成。 sourceArtifactory: myArtifactory
sourceDistribution
提供您的发行版集成。 sourceDistribution:
myDist
JFrog管道中的所有管道名称都是全局的.你的管道和资源的名称在JFrog管道中必须是唯一的。2022世界杯阿根廷预选赛赛程
添加管道源
的管道来源代表存储管道定义文件的Git repo。管道源通过控件连接到存储库集成,这是在上一步中添加的。
在左侧导航栏中,转到管理|管道|管道源.点击添加管道源然后选择从YAML.遵照指示添加管道源.
管道源同步成功后,导航到管道|我的管道在左侧导航栏可以看到新添加的管道。在这个例子中,
cd_
demo_release_mgmt
是我们管道的名称。单击管道的名称。这将呈现管道及其最新运行结果的实时交互式图表。
执行管道
您现在可以承诺回购到触发管道,或手动触发管道通过UI。管道中的步骤按顺序执行。如果节点池有多个可用的构建节点,则可以并行执行多个步骤。
pipelines.yml
的pipelines.yml
文件由资源、管道和步骤组成,如下图所示2022世界杯阿根廷预选赛赛程:
2022世界杯阿根廷预选赛赛程
本例使用以下类型的2022世界杯阿根廷预选赛赛程:
BuildInfo
一个BuildInfo
resource是与Artifactory中的构建相关联的元数据。
JFrog管道自动创建BuildInfo时,任何构建步骤,如MvnBuild,NpmBuild,GradleBuild,或DockerBuild用于生成包。BuildInfo通过PublishBuildInfo步骤,通过在构建步骤中设置标志或在步骤中提供该资源,如NpmPublish,GoPublishModule,GoPublishBinary,DockerPush.
#构建到bundle的构建信息-名称:gosvc_promoted_build_info类型:BuildInfo配置:sourceArtifactory: {{. values。artfactoryintegration}} buildName: dbp_build buildNumber: 1
标签 |
描述 |
必需的/可选 |
---|---|---|
的名字 |
此名称用于引用步骤中的资源,并且必须在JFrog Pipelines环境中的所有存储库中惟一。 |
要求 |
sourceArtifactory |
|
要求 |
buildName |
|
可选 |
buildNumber | 要与BuildInfo关联的构建的编号。 | 可选 |
ReleaseBundle
一个ReleaseBundle
资源指定Artifactory中的一组工件,这些工件作为a分布到Artifactory Edge节点JFrog分发发布包.
此资源可用于CreateReleaseBundle或DistributeReleaseBundle.此资源可用于表示两者签署和未签署的发布包.
—name: release_bundle type: ReleaseBundle configuration: sourceDistribution: {{. values。distributionIntegration}}名称: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是可以应用到的目标规则的集合分发发布包使用JFrog分发。
—name: distribution_rules type: DistributionRule配置: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
管道由以下本机组成步骤:
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: | ##标题*项目*要点
标签 |
使用说明 |
必需的/可选 |
---|---|---|
的名字 |
包 该名称是否标识CreateReleaseBundle 的一步。 |
要求 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定要么一个命名BuildInfo资源(年代)或一个Aql资源。 如果BuildInfo |
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
必须指定一个ReleaseBundle资源。 的 |
要求 |
releaseBundleName |
发布包的字母数字名称。demo_rb 本例中使用的名称。 |
要求 |
releaseBundleVersion |
发布包的版本字符串 | 要求 |
dryRun |
当设置为 默认是真实的。 |
可选 |
标志 |
指定发布包版本是否签名。 默认为false。 |
可选 |
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
标签 |
使用说明 |
必需的/可选 |
---|---|---|
的名字 |
分布是标识DistributeReleaseBundle 的一步。 |
要求 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定ReleaseBundle资源(signed_bundle)和一个DistributionRule资源(distribution_rules). | 要求 |
dryRun |
控制这是否应该是一次演练,以测试发布包是否可以分发到匹配分发规则的Edge节点。 默认为true。 |
可选 |