YAML模式
DockerBuild原生步骤的YAML模式如下:
- name:steps: - name: type: CreateReleaseBundle configuration: #继承所有的标签从bash;//www.si-fil.com/confluence/display/JFROG/Bash releaseBundleName: releaseBundleVersion: dryRun: # default true sign: # default false description: # optional failOnValidate: # optional (Signed Pipelines must enabled) releaseNotes: # optional content: # "markdown|asciidoc|plain_text" syntax: # required in releaseNotes inputRes2022世界杯阿根廷预选赛赛程ources: - name: # one or more BuildInfo, or - name: # one Aql outputResourc2022世界杯阿根廷预选赛赛程es: - name: execution: onStart: - echo "Preparing for work…" onSuccess: - echo "Job well done!" onFailure: - echo "uh oh, something went wrong" 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集成和一个分布的集成.
- 此示例的pipeline DSL可在这个存储库在JFrogGitHub帐户。
模板:true #需要本地模板valuesFilePath: ./values。yml资2022世界杯阿根廷预选赛赛程源:#第一次构建到bundle的构建信息-名称:gosvc_promoted_build_info类型:BuildInfo配置:sourceArtifactory: {{. values。myArtifactoryIntegration}} buildName: svc_build buildNumber: 1 #第二次构建到包的构建信息- name: appl_promoted_build_info类型:BuildInfo配置:sourceArtifactory: {{. values . demoartifactoryintegration}} buildName: backend_build buildNumber: 1 #发布包- name: release_bundle类型:ReleaseBundle配置:sourceDistribution: {{. values。distributionIntegration}}名称:demo_rb版本:v1.0.0 #相同发布包的签名版本-名称:signed_bundle类型:ReleaseBundle配置:sourceDistribution: {{. values . name:#分发规则- name: distribution_rules type: DistributionRule configuration: sourceDistribution: {{. values . name:分配规则。distributionIntegration}} serviceName: "*" siteName: "*" cityName: "*" countryCodes: - "CN" - "GB" pipeline: - 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:分发类型:DistributeReleaseBundle configuration:- name: signed_bund2022世界杯阿根廷预选赛赛程le - name: distribution_rules . dryRun: false inputResources
创建并签署发布包
创建并立即签署一个发布包,并将描述和发布说明添加到发布包中。
—name: createReleaseBundlePipeline steps:—name: createReleaseBundleStep类型:CreateReleaseBundle配置:releaseBundleName: myReleaseBundle releaseBundleVersion: "${run_number}" dryRun: false sign: true description: "My release bundle" releaseNotes:语法:plain text content: " release of ${run_number} by ${step_name}" inputResources: - name: myBuildInfo outpu2022世界杯阿根廷预选赛赛程tResources: - name: myReleaseBundle
触发干跑
触发发布包创建的一次演练。不会创建任何发布包。
—name: createReleaseBundlePipeline steps:—name: createReleaseBundleStep type: CreateReleaseBundle configuration: releaseBundleName: myReleaseBundle releaseBundleVersion: "${run_number}" dryRun: true inputResources: - n2022世界杯阿根廷预选赛赛程ame: myBuildInfo outputResources: - name: myReleaseBundle . txt
它是如何工作的
当您使用CreateReleaseBundle管道中的原生步骤,它在后台执行以下功能:
- Jfrog rt配置(通过输入资源中的集成来配置cli)
- jfrog rt curl(获取Artifactory service_id)
- validate_artifact(使用签名管道特性来验证传入的BuildInfo)
- 创建发布包创建有效负载(将位于分发请求中的JSON对象)
- curl(将发布包创建有效负载发送到分发版)
- write_output(更新输出ReleaseBundle资源)
- Save_artifact_info(如果包已签名,则保存数据以便与已签名的管道一起使用)