云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

PublishBuildInfo一步发布BuildInfoArtifactory。BuildInfo为构建提供了一个清单,包括关于模块、依赖项和其他环境变量的元数据。


BuildInfo还可以通过任何特定于语言的发布步骤发布autoPublishBuildInfo标签设置为真正的

一个基本的排除模式总是应用于管道中发布的构建信息,以防止包含安全信息(例如,秘密)和其他不必要的数据的环境变量被发布。基本排除模式是:

buildinfo.env.res_ *; buildinfo.env.int_ *; buildinfo.env.current_ * *密码*,*秘密*,*键* *牌*

页面内容


YAML模式

PublishBuildInfo本机步骤的YAML模式如下:

PublishBuildInfo
管道:- name: 步骤:- name: 类型:PublishBuildInfo配置:#继承所有的标签从bash;//www.si-fil.com/confluence/display/JFROG/Bash envInclude:  envExclude:  forceXrayScan:  # default false failOnScan:  # default true inputSteps: - name: <任何构建步骤或Bash步骤> # required outputResources: - name:  # required 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"

标签

的名字

一个字母数字字符串(允许使用下划线),用于标识步骤。

类型

必须PublishBuildInfo对于这个步骤类型。

配置

指定步骤执行环境的所有配置选择。该步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:

标签

使用说明

必需的/可选

inputSteps

必须指定以下类型之一的命名步骤:

步骤必须已经建立autoPublishBuildInfo真正的

要求
output2022世界杯阿根廷预选赛赛程Resources

必须指定BuildInfo要发布的资源。的buildName而且buildNumber属性将自动设置为buildName美元而且buildNumber美元的定义JFROG_CLI_BUILD_NAME和/或JFROG_CLI_BUILD_NUMBER从命名步骤的环境中获取本机步骤。如果JFROG_CLI_BUILD_NAMEJFROG_CLI_BUILD_NUMBER当输入步骤运行时没有设置,默认值是pipeline_name美元而且run_number美元

如果inputSteps是Bash步骤和buildName美元buildNumber美元未定义,则此步骤将失败。
要求


此外,可以定义这些标记来支持该步骤的本机操作:

所有本机步骤都派生自Bash的一步。这意味着所有步骤共享来自Bash的相同基本标记集,而本机步骤也有自己的附加标记,这些标记支持该步骤的特定功能。所以熟悉这个很重要Bash步骤定义,因为它是所有其他步骤定义的核心。

标签

使用说明

必需的/可选
envInclude 模式,其中包含环境变量。默认情况下包括所有环境变量。 可选
envExclude 要排除的环境变量的模式.除了应用于所有构建信息的基本排除模式外,还应用此模式。 可选
forceXrayScan

当设置为true时,在发布到Artifactory后强制进行x射线扫描。

默认为false。

可选
failOnScan

当设置为真正的,w当x光片策略规则失败的构建复选框,则x射线扫描失败将导致该步骤失败。

默认为true。

可选


执行

声明在执行前和执行后阶段执行的shell命令序列集合:

标签

使用说明

必需的/可选
onStart 在本机操作之前执行的命令 可选
调用onSuccess 成功完成后执行的命令 可选
onFailure 在完成失败时执行的命令 可选
onComplete 在任何补全时执行的命令 可选

对象执行的操作onExecute阶段是此步骤类型固有的,不能被覆盖。


例子

下面的示例展示如何配置PublishBuildInfo步骤。

全管道示例

推送DockerBuild输入步骤创建的映像,并将BuildInfo发布到Artifactory。

DockerPush
#这个配置文件是模板化的,这样可以很容易地自定义。值可以用值来提供。yml文件。模板:true #需要本地模板—名称:2022世界杯阿根廷预选赛赛程app_repo1类型:GitRepo配置:gitProvider: {{. values . yml资源:—名称:app_repo1类型:GitRepo配置:gitProvider: {{. values . yml资源:getintegration}}路径:{{. values。gitRepositoryPath}}分支:包括:master - name: app_buildinfo1 type: BuildInfo配置:sourceArtifactory: {{. values。artifactoryIntegration}} - name: app_promoted_buildinfo1类型:BuildInfo配置:sourceArtifactory: {{. values。artifactoryIntegration}}管线:—name: app_dev_pipeline步骤:—name: app_build type: DockerBuild configuration: affinityGroup: docker_group dockerFileLocation:。dockerFileName: Dockerfile dockerImageName: {{. values。artifactoryUrl}}/{{. values。sourceRepository}}/{{. values。imageName}} dockerImageTag: ${run_number} inputR2022世界杯阿根廷预选赛赛程esources:—name: app_repo integrations:—name: {{. values。artifactoryIntegration}} - name: app_push类型:DockerPush配置:affinityGroup: docker_group targetRepository: {{. values . name: app_push类型:DockerPush配置sourceRepository}}集成:- name: {{. values . properties:artifactoryIntegration }} inputSteps: - name: app_build - name: publish_app_build type: PublishBuildInfo configuration: affinityGroup: docker_group inputSteps: - name: app_push outputResources: - name: app_buildinfo

MvnBuild例子

这扩展了第一个MvnBuild示例使用PublishBuildInfo步骤发布构建信息。

PublishBuildInfo
pipeline:—name: MyMavenPipeline steps:—name: MavenWithArtifactory type: MvnBuild configuration: integration:—name: art inputResource2022世界杯阿根廷预选赛赛程s:—name: mvn_repo - name: publishBuildInfoStep type: PublishBuildInfo configuration: inputSteps:—name: MavenWithArtifactory outputResources:—name: buildInfoResource

NpmBuild而且NpmPublish例子

一个NpmBuild而且NpmPublish示例使用PublishBuildInfo步骤发布构建信息,并在PublishBuildInfo步骤中触发x射线扫描。

PublishBuildInfo
管道:—name: npmBuildPipeline步骤:—name: npmBuildStep类型:NpmBuild配置:inputResources:—name: gitRepoResource2022世界杯阿根廷预选赛赛程集成:—name: artifactory_integration—name: npmPublishStep类型:NpmPublish配置:deployerRepo: npm-repo inputSteps:—name: npmBuildStep outputResources:—name: outputBuildInfo—name: PublishBuildInfo step类型:PublishBuildInfo配置:forceXrayScan: true inputSteps:—name: npmPublishStep outputResources:—name: buildInfoResource

Bash和goppublishmodule Step

输入到PublishBuildInfo步骤的Bash步骤GoPublishModule的一步。

PublishBuildInfo
管道:—名称:goPublishModulePipeline步骤:—名称:goPublishModuleStep类型:GoPublishModule配置:版本:“v0.0”。${run_number}" targetRepository: go-repo self: true deps: ALL input2022世界杯阿根廷预选赛赛程Resources: - name: gitRepoResource integration: - name: artifactory_integration - name: moduleTestStep type: Bash配置:inputSteps: - name: goPublishModuleStep执行:onExecute: - "echo '正在运行一些测试。- name: publishBuildInfoStep type: PublishBuildInfo configuration: environmentVariables: buildStepName: gopubishmodulestep inputSteps:—name: moduleTestStep outputResour2022世界杯阿根廷预选赛赛程ces:—name: buildInfoResource

工作原理

当你使用PublishBuildInfo管道中的本机步骤,它在后台执行以下功能:

  • jfrog rt配置(使用BuildInfo输出凭证配置jfrog CLI)
  • Jfrog rt使用(指定要使用的配置凭据)
  • Restore_run_files(从输入步骤复制输出和构建信息)
  • Jfrog rt build-publish(发布构建信息
  • jfrog rt build-scan(如果forceXrayScan为true,则触发扫描
  • write_output(如果autopubishbuildinfo为true,更新输出的BuildInfo资源)
  • Add_run_files(更新在运行状态下保存的构建信息)
  • 没有标签
版权所有©2022 JFrog Ltd.