YAML模式
DistributeReleaseBundle原生步骤的YAML模式如下:
DistributeReleaseBundle
- name:steps: - name: my_distribute type: DistributeReleaseBundle configuration: #从bash继承所有标签;//www.si-fil.com/confluence/display/JFROG/Bash dryRun: <布尔> #可选inputResources: -名2022世界杯阿根廷预选赛赛程称:my_releaseBundle #需要一个ReleaseBundle触发:错:名称:my_distributionRule #需要一个DistributionRule触发:假#默认真outputResources: -名称:my_releaseBundleOutput # ReleaseBundle是可选执行:onStart: -回声“准备工作…”调用onSuccess: - echo”工作做得好!”onFailure:——回声onComplete“哦哦,事情错了”:#always - echo“清理一些东西”
标签
的名字
一个字母数字字符串(允许使用下划线),用于标识步骤。
类型
必须DistributeReleaseBundle
对于这个步骤类型。
配置
指定步骤执行环境的所有配置选择。该步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
input2022世界杯阿根廷预选赛赛程Resources |
必须指定ReleaseBundle资源和一个DistributionRule资源。 |
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
可指定ReleaseBundle方法更新的资源的名字 而且版本 输入ReleaseBundle的。 |
可选 |
此外,可以定义这些标记来支持该步骤的本机操作:
从Bash派生的标记
标签 |
使用说明 |
必需的/可选 |
---|---|---|
dryRun |
控制这是否应该是一次演练,以测试发布包是否可以分发到匹配分发规则的Edge节点。 默认为true。 |
可选 |
执行
声明在执行前和执行后阶段执行的shell命令序列集合:
标签 | 使用说明 | 必需的/可选 |
---|---|---|
onStart |
在本机操作之前执行的命令 | 可选 |
调用onSuccess |
成功完成后执行的命令 | 可选 |
onFailure |
在完成失败时执行的命令 | 可选 |
onComplete |
在任何补全时执行的命令 | 可选 |
对象执行的操作onExecute
阶段是此步骤类型固有的,不能被覆盖。
例子
下面的示例展示如何配置DistributeReleaseBundle步骤进行分发或进行演练。
分发输入发布包边缘节点
将输入发布包分发到分布规则中定义的边缘节点。
- 此示例需要一个Artifactory集成和一个分布的集成。
- 本例中的管道DSL是可以在这个存储库在JFrogGitHub帐户。
DistributeReleaseBundle
模板:true #需要本地模板yml资2022世界杯阿根廷预选赛赛程源:#第一次构建到bundle的构建信息-名称:gosvc_promoted_build_info类型:BuildInfo配置:sourceArtifactory: {{. values。myArtifactoryIntegration}} buildName: svc_build buildNumber: 1 #第二次构建到bundle的构建信息- name: appl_promoted_build_info类型:BuildInfo配置:sourceArtifactory: {{. values . demoartifactoryintegration}} buildName: backend_build buildNumber: 1 #发布包- name: release_bundle类型:ReleaseBundle配置:sourceDistribution: {{. values . demoartifactoryintegration。distributionIntegration}} name: demo_rb version: v1.0.0 #同一个发布包的签名版本- name: signed_bundle type: ReleaseBundle configuration: sourceDistribution: {{. values . #distributionIntegration}}名称:demo_rb版本:v1.0.0 #分发规则-名称:distribution_rules类型:DistributionRule配置:sourceDistribution: {{. values . value . {{. distribution_rulesdistributionIntegration}} serviceName: "*" siteName: "*" cityName: "*" countryCodes: - "CN" - "GB" pipelines: - name: demo_release_mgmt steps: - 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: true - name: appl_promoted_build_info trigger: true outputResources: - name: release_bundle releaseNotes: syntax: markdown content: | ## Heading * Bullet * Points - name: sign type: SignReleaseBundle configuration: inputResources: - name: release_bundle outputResources: - name: signed_bundle - name: distribution type: DistributeReleaseBundle configuration:dryRun: false input2022世界杯阿根廷预选赛赛程Resources:—name: signed_bundle—name: distribution_rules
启动预演
触发发行版的演练。
DistributeReleaseBundle
管道:—name: distributeReleaseBundlePipeline步骤:—name: distributeReleaseBundleDryRun类型:DistributeReleaseBundle配置:dryRun: true inputResources:—name: myReleaseBundle2022世界杯阿根廷预选赛赛程—name: myInputDistributionRule
触发分发并更新输出资源
触发分发并使用输入的名称和版本更新输出资源。
DistributeReleaseBundle
管道:—name: distributeReleaseBundlePipeline步骤:—name: distributeReleaseBundleDryRun类型:DistributeReleaseBundle配置:dryRun: false inputResources:—name: myReleaseBundle2022世界杯阿根廷预选赛赛程—name: myInputDistributionRule outputResources:—name: myOutputReleaseBundle
同样的步骤为演练和分配
在这个例子中,相同的步骤用于两个干运行,并将发布包分发到边缘节点。dry_run变量可以在管道配置部分或步配置或由管道中的较早步骤使用添加为运行变量add_run_variable。
DistributeReleaseBundle
管道:—name: distributeReleaseBundlePipeline步骤:—name: distributeReleaseBundleStep type: DistributeReleaseBundle配置:dryRun: ${dry_run} inputResources:—name: myReleaseBu2022世界杯阿根廷预选赛赛程ndle—name: myInputDistributionRule
工作原理
当你使用DistributeReleaseBundle管道中的本机步骤,它在后台执行以下功能:
- 创建分发有效负载(将出现在分发请求中的JSON对象)
- curl $distributionUrl/api/v1/distribution/$releaseBundleName/$releaseBundleVersion(发送分发或演练有效载荷到分发)
- curl $distributionUrl/api/v1/release_bundle/$releaseBundleName/$releaseBundleVersion/distribution/$trackerId(如果不是一个演练,使用分发返回的跟踪器ID,检查分发是否完整)
- write_output(更新输出ReleaseBundle资源)