YAML模式
PromoteBuild原生步骤的YAML模式如下:
PromoteBuild
- name:步骤:- name: type: PromoteBuild配置:#继承bash的所有标签;//m.si-fil.com/confluence/display/JFROG/Bash targetrerepository: includeDependencies: #默认false状态: 注释: 复制: inputResources: - name: #需要触发:false outputResources: - name: #需要执行:onStart: - echo“准备工作…”onSuccess: - echo“工作做得好!”onFailure: - echo“哦哦,出了问题”onComplete: #always - echo“清理一些东西”
标签
名字
一个字母数字标识步骤的字符串(允许使用下划线)。
类型
必须PromoteBuild
对于这一步,输入:
配置
指定步骤执行环境的所有配置选择。此步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
input2022世界杯阿根廷预选赛赛程Resources |
必须指定一个命名的BuildInfo资源的buildName 和buildNumber 属性标识要提升的构建. |
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
必须指定一个命名的BuildInfo资源映射到提升的构建。BuildInfo将更新为buildName 和buildNumber 的输入BuildInfo资源,以及它的targetRepo 的值targetRepository . |
要求 |
此外,可以定义这些标签来支持步骤的本机操作:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
targetRepository |
Artifactory中要将构建提升到的存储库的名称。 | 要求 |
includeDependencies |
当设置为true时,提升将包括构建依赖项。 默认为false。 |
可选 |
状态 |
要将构建提升到的状态的名称。 | 可选 |
评论 |
评论包括为推广。 | 可选 |
复制 |
当设置为true时,将工件复制到targetRepository,而不是将它们移动到targetRepository。 默认为false。 |
可选 |
执行
声明要在执行前和执行后阶段执行的shell命令序列的集合:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
onStart |
在本机操作之前执行的命令 | 可选 |
调用onSuccess |
成功完成时执行的命令 | 可选 |
onFailure |
完成失败时执行的命令 | 可选 |
onComplete |
在任何补全时执行的命令 | 可选 |
执行的操作onExecute
阶段是此步骤类型所固有的,并且不能被覆盖。
例子
下面的示例展示了如何配置PromoteBuild步骤。
促进构建到人工
将由输入BuildInfo指定的构建提升到名为docker-prod-local
.在这个例子中,触发
设为假
在输入资源上,以便不会自动触发该步骤。
- 这个例子需要Artifactory集成和一个GitHub集成.
- 这个示例的管道DSL是可以在这个存储库在JFrogGitHub帐户。
PromoteBuild
这个配置文件是模板化的,所以它可以很容易地定制。值可以与值一起提供。yml文件。template: true #本地模板需要valuesFilePath: ./values。—名称:2022世界杯阿根廷预选赛赛程app_repo类型:GitRepo配置:gitProvider:{{。gitIntegration}}路径:{{. values。gitRepositoryPath}}分支:包括:master - name: app_buildinfo类型:BuildInfo配置:sourceArtifactory: {{. values。artifactoryIntegration}} -名称:app_promoted_buildinfo类型:BuildInfo配置:sourceArtifactory: {{. values。artifactoryIntegration}}管道:—名称:app_dev_pipeline_su204步骤:—名称:app_build类型:DockerBuild配置:affinityGroup: docker_group dockerFileLocation:。dockerFileName: Dockerfile dockerImageName: {{. values。artifactoryUrl}}/{{. values。sourcererepository}}/{{. values。imageName}} dockerImageTag: ${run_number} inputR2022世界杯阿根廷预选赛赛程esources:—name: app_repo集成:—name: {{. values。artifactoryIntegration}} -名称:app_push类型:DockerPush配置:affinityGroup: docker_group targetRepository: {{. values。sourcererepository}}集成:—name: {{. values。artifactoryIntegration }} inputSteps: - name: app_build - name: publish_app_build type: PublishBuildInfo configuration: affinityGroup: docker_group inputSteps: - name: app_push outputResources: - name: app_buildinfo - name: xrayScanStep type: XrayScan configuration: inputResources: - name: app_buildinfo - name: app_prod_pipeline_su204 steps: - name: app_promote_build type: PromoteBuild configuration: targetRepository: {{ .Values.prodRepository }} inputResources: - name: app_buildinfo trigger: false outputResources: - name: app_promoted_buildinfo - name: app_deploy type: Bash configuration: integrations: - name: {{ .Values.artifactoryIntegration }} inputResources: - name: app_promoted_buildinfo execution: onStart: - jfrog rt docker-pull {{ .Values.artifactoryUrl }}/{{ .Values.prodRepository }}/{{ .Values.imageName }}:$res_app_promoted_buildinfo_buildNumber {{ .Values.prodRepository }} #- jfrog rt dl prod-go-local/app #- ls -latr onExecute: - docker run {{ .Values.artifactoryUrl }}/{{ .Values.prodRepository }}/{{ .Values.imageName }}:$res_app_promoted_buildinfo_buildNumber
用状态和评论促进构建
使用状态和注释来促进构建。
PromoteBuild
管道:-名称:promoteBuildPipeline步骤:-名称:promoteBuildStep类型:PromoteBuild配置:targetrerepository: my- promotebuildbuildstatus: TEST注释:"由运行数${run_number}提升"集成:-名称:artifactory_integration inputResources: -名称:inputBuildInfo触发:false outputResources: -名称:outputBuildInfo2022世界杯阿根廷预选赛赛程
推广构建和复制
在本例中,当提升构建时,将对其进行复制,以便在以前的存储库中保留一个副本,并且复制依赖项和构建。
PromoteBuild
管道:-名称:promoteBuildPipeline步骤:-名称:promoteBuildStep类型:PromoteBuild配置:targetrerepository: my- promotebuildbuilds includeDependencies: true复制:true集成:-名称:artifactory_integration inputResources: -名称:inputBuildInfo触发:false outputResource2022世界杯阿根廷预选赛赛程s: -名称:outputBuildInfo
它是如何工作的
当你使用PromoteBuild它是管道中的原生步骤,在后台执行以下功能:
- jfrog rt config(使用BuildInfo输入中的凭据配置jfrog CLI)
- Jfrog rt build-promote
- write_output(更新输出BuildInfo资源)