YAML模式
DockerBuild原生步骤的YAML模式如下:
- name:步骤:- name: 类型:CreateReleaseBundle配置:#从bash继承所有标签;//m.si-fil.com/confluence/display/JFROG/Bash releaseBundleName: releaseBundleVersion: dryRun: # default true sign: # default false description: # optional failOnValidate: # optional (Signed Pipelines必须启用)releaseNotes: # optional content: # "markdown|asciidoc|plain_text" syntax: # required in releaseNotes inputResources: - 2022世界杯阿根廷预选赛赛程name: #一个或多个BuildInfo,或- name: # one Aql outputResourc2022世界杯阿根廷预选赛赛程es: - name: execution: onStart: - echo "Preparing for work…" onSuccess: - echo "Job well done!" onFailure: - echo "uh oh, something出错了" onComplete: #always - echo " cleanup up some stuff"
标签
名字
一个字母数字标识步骤的字符串(允许使用下划线)。
类型
必须CreateReleaseBundle
对于这一步,输入:
配置
指定步骤执行环境的所有配置选择。此步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
input2022世界杯阿根廷预选赛赛程Resources |
必须指定要么一个命名BuildInfo资源(年代)或一个Aql资源。CreateReleaseBundle步骤不接受其他输入资源。2022世界杯阿根廷预选赛赛程 如果BuildInfo |
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
必须指定一个ReleaseBundle资源。 的 |
要求 |
此外,可以定义这些标签来支持步骤的本机操作:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
releaseBundleName |
发布包的字母数字名称。 | 要求 |
releaseBundleVersion |
发布包的版本字符串。 | 要求 |
dryRun |
当设置为 默认是真实的。 |
可选 |
标志 |
可选 | |
描述 |
发布包的描述。 | 可选 |
releaseNotes |
描述发布包版本的发布说明。
|
可选 |
failOnValidate |
的签名之一,则步骤失败BuildInfo无法验证输入资源工件。 默认是 |
可选的(签署了管道必须启用) |
执行
声明要在执行前和执行后阶段执行的shell命令序列的集合:
标签 | 使用说明 | 必需的/可选 |
---|---|---|
onStart |
在本机操作之前执行的命令 | 可选 |
调用onSuccess |
成功完成时执行的命令 | 可选 |
onFailure |
完成失败时执行的命令 | 可选 |
onComplete |
在任何补全时执行的命令 | 可选 |
执行的操作onExecute
阶段是此步骤类型所固有的,并且不能被覆盖。
例子
下面的示例展示了为几个不同的发布包配置哪些设置。
使用BuildInfo资源创建的未签名发布包
使用BuildInfo资源创建的一个简单的、未签名的发布包。在这种情况下,发布包版本将是运行号,没有描述或发布说明。
- 这个例子需要Artifactory集成和一个分布的集成。
- 此示例的管道DSL可在这个存储库在JFrogGitHub帐户。
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
创建并签署发布包
创建并立即签署一个发布包,将描述和发布说明添加到发布包中。
管道:-名称:createReleaseBundlePipeline步骤:-名称:createReleaseBundleStep类型:CreateReleaseBundle配置:releaseBundleName: myReleaseBundle releaseBundleVersion: "${run_number}" dryRun: false sign: true description: "My release bundle" releaseNotes:语法:plain_text内容:" release of ${run_number} by ${step_name}" inputResources: - name: myBuildInfo outputResources: - 2022世界杯阿根廷预选赛赛程name: myReleaseBundle
触发演练
触发发布包创建的试运行。不会创建任何发布包。
-名称:createReleaseBundlePipeline步骤:-名称:createReleaseBundleStep类型:CreateReleaseBundle配置:releaseBundleName: myReleaseBundle releaseBundleVersion: "${run_number}" dryRun: true inputResources: -名称:myBuildInfo outputResource2022世界杯阿根廷预选赛赛程s: -名称:myReleaseBundle
它是如何工作的
当你使用CreateReleaseBundle它是管道中的原生步骤,在后台执行以下功能:
- Jfrog rt config(在输入资源中使用集成配置cli)
- jfrog rt curl(获取Artifactory service_id)
- validate_artifact(使用带签名的管道特性来验证传入的BuildInfo)
- 创建发布包创建有效负载(将在分发请求中的JSON对象)
- curl(将发布包创建负载发送到Distribution)
- write_output(更新输出的ReleaseBundle资源)
- Save_artifact_info(如果bundle已签名,则保存数据以便与已签名的管道一起使用)