YAML模式
distributerreleasebundle原生步骤的YAML模式如下:
DistributeReleaseBundle
- name: my_distribute type: DistributeReleaseBundle配置:#从bash继承所有的标签;//m.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 |
控制这是否应该作为试运行,以测试发布包是否可以分发到与分发规则匹配的边缘节点。 默认为true。 |
可选 |
执行
声明要在执行前和执行后阶段执行的shell命令序列的集合:
标签 | 使用说明 | 必需的/可选 |
---|---|---|
onStart |
在本机操作之前执行的命令 | 可选 |
调用onSuccess |
成功完成时执行的命令 | 可选 |
onFailure |
完成失败时执行的命令 | 可选 |
onComplete |
在任何补全时执行的命令 | 可选 |
执行的操作onExecute
阶段是此步骤类型所固有的,并且不能被覆盖。
例子
下面的示例展示了如何配置distributerreleasebundle步骤来分发或进行演练。
分发输入释放束边缘节点
将输入释放包分发到分发规则中定义的边缘节点。
- 这个例子需要Artifactory集成和一个分布的集成.
- 这个示例的管道DSL是可以在这个存储库在JFrogGitHub帐户。
DistributeReleaseBundle
template: true #本地模板需要valuesFilePath: ./values。资源:#2022世界杯阿根廷预选赛赛程构建信息的第一个构建到bundle - name: gosvc_promoted_build_info类型:BuildInfo配置:sourceArtifactory: {{. values。myArtifactoryIntegration}} buildName: svc_build buildNumber: 1 #构建第二个构建到bundle的构建信息-名称:appl_promoted_build_info类型:BuildInfo配置:sourceArtifactory: {{. values . demoartifactoryintegration}} buildName: backend_build buildNumber: 1 #发布bundle -名称:release_bundle类型:ReleaseBundle配置:sourceDistribution: {{. values。名称:demo_rb版本:v1.0.0 #相同发布包的签名版本-名称:signed_bundle类型:ReleaseBundle配置:sourceDistribution: {{. values。distributionIntegration}} name: demo_rb版本:v1.0.0 #分布规则- name: distribution_rules类型:DistributionRule配置:sourceDistribution: {{. values . value . value . value . value . value . value . value . value . value . value . value . value . value . value . value . value . value . value . value . value。distributionIntegration}} serviceName: "*" siteName: "*" cityName: "*" countryCodes: - "CN" - "GB" pipelines: - name: demo_release_mgmt steps: - name: bundle类型:CreateReleaseBundle配置:releaseBundleName: demo_rb releaseBundleVersion: v1.0。${run_number} dryRun: false sign: false description: "一些随机测试描述" inputResources: - name: g2022世界杯阿根廷预选赛赛程osvc_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: release_bundle outputResources: - name: signed_bundle - name: distribute type: distributerreleeasebundle配置:dryRun: false input2022世界杯阿根廷预选赛赛程Resources:—name: signed_bundle—name: distribution_rules
触发演练
触发分发的试运行。
DistributeReleaseBundle
pipeline:—name: distributerreleaseebundlepipeline步骤:—name: distributerreleaseebundledryrun类型:distributerreleaseebundle配置:dryRun: true inputResources:—name: myR2022世界杯阿根廷预选赛赛程eleaseBundle—name: myInputDistributionRule
触发分发和更新输出资源
触发分发并使用输入的名称和版本更新输出资源。
DistributeReleaseBundle
- name: distributerreleaseebundlepipeline步骤:- name: distributerreleaseebundledryrun类型:distributerreleaseebundle配置:dryRun: false inputResources: - name: myReleas2022世界杯阿根廷预选赛赛程eBundle - name: myInputDistributionRule outputResources: - name: myOutputReleaseBundle
排练和分发的步骤相同
在这个例子中,同样的步骤被用于演练和分发发布包到边缘节点。dry_run变量可以在管路配置部分或步配置或作为运行变量由管道中的前一步添加,使用add_run_variable.
DistributeReleaseBundle
管道:—名称:distributerreleaseebundlepipeline步骤:—名称:distributerreleaseebundlestep类型:distributerreleeasebundle配置:dryRun: ${dry_run} inputResources:—名称:myReleaseBundle—名称2022世界杯阿根廷预选赛赛程:myInputDistributionRule
它是如何工作的
当你使用DistributeReleaseBundle它是管道中的原生步骤,在后台执行以下功能:
- 创建分发有效负载(将出现在分发请求中的JSON对象)
- curl $distributionUrl/api/v1/distribution/$releaseBundleName/$releaseBundleVersion(发送分发版或演练负载到分发版)
- curl $distributionUrl/api/v1/release_bundle/$releaseBundleName/$releaseBundleVersion/distribution/$trackerId(如果不是试运行,使用distribution返回的跟踪器ID,检查发行是否完成)
- write_output(更新输出的ReleaseBundle资源)