YAML模式
PublishBuildInfo原生步骤的YAML模式如下:
- name:步骤:- name: type: PublishBuildInfo配置:#继承bash的所有标签;//m.si-fil.com/confluence/display/JFROG/Bash envInclude: envExclude: forceXrayScan: #默认为false failOnScan: #默认为true inputSteps: - name: <任何构建步骤或Bash步骤> # required outputResources: - name: #需要执行:onStart: - echo“准备工作…”onSuccess: - echo“工作做得好!”onFailure: - echo“哦,出了问题”onComplete: #always - echo“清理一些东西”
标签
名字
一个字母数字标识步骤的字符串(允许使用下划线)。
类型
必须PublishBuildInfo
对于这一步,输入:
配置
指定步骤执行环境的所有配置选择。此步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
inputSteps |
必须指定下列类型之一的命名步骤:
步骤必须不已经建立 |
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
必须指定BuildInfo要发布的资源。的
如果
inputSteps 是一个Bash步骤和buildName美元 或buildNumber美元 未定义,则此步骤将失败。 |
要求 |
此外,可以定义这些标签来支持步骤的本机操作:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
envInclude |
要包含哪些环境变量的模式。默认是包含所有环境变量。 | 可选 |
envExclude |
要排除哪些环境变量的模式。除了应用于所有构建信息的基本排除模式之外,还应用了此模式。 | 可选 |
forceXrayScan |
当设置为true时,在发布到Artifactory后强制进行x射线扫描。 默认为false。 |
可选 |
failOnScan |
当设置为真正的,w然后是x光策略规则失败的构建复选框,则x射线扫描失败将导致该步骤失败。 默认为true。 |
可选 |
执行
声明要在执行前和执行后阶段执行的shell命令序列的集合:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
onStart |
在本机操作之前执行的命令 | 可选 |
调用onSuccess |
成功完成时执行的命令 | 可选 |
onFailure |
完成失败时执行的命令 | 可选 |
onComplete |
在任何补全时执行的命令 | 可选 |
执行的操作onExecute
阶段是此步骤类型所固有的,并且不能被覆盖。
例子
下面的示例展示了如何配置PublishBuildInfo步骤。
全管道示例
推送由DockerBuild输入步骤创建的映像,并将BuildInfo发布到Artifactory。
- 这个例子需要Artifactory集成和一个GitHub集成。
- 这个示例的管道DSL是可以在这个存储库在JFrogGitHub帐户。
这个配置文件是模板化的,所以它可以很容易地定制。值可以与值一起提供。yml文件。template: true #本地模板需要valuesFilePath: ./values。—名称:2022世界杯阿根廷预选赛赛程app_repo1类型:GitRepo配置:gitProvider:{{。gitIntegration}}路径:{{. values。gitRepositoryPath}}分支:包括:master - name: app_buildinfo1类型:BuildInfo配置:sourceArtifactory: {{. values。artifactoryIntegration}} -名称:app_promoted_buildinfo1类型:BuildInfo配置:sourceArtifactory: {{. values。artifactoryIntegration}}管道:—名称:app_dev_pipeline步骤:—名称: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
MvnBuild例子
这扩展了第一个MvnBuild示例使用PublishBuildInfo步骤发布构建信息。
管道:-名称:MyMavenPipeline步骤:-名称:MavenWithArtifactory类型:MvnBuild配置:集成:-名称:art inputResources: -名称:mvn_repo -名称:publishBuildInfoStep类型:Pu2022世界杯阿根廷预选赛赛程blishBuildInfo配置:inputSteps: -名称:MavenWithArtifactory输出资源:-名称:buildInfoResource
NpmBuild和NpmPublish例子
一个NpmBuild和NpmPublish示例使用PublishBuildInfo步骤发布构建信息,并在PublishBuildInfo步骤中触发x射线扫描。
管道:-名称:npmBuildPipeline步骤:-名称:npmBuildStep类型:NpmBuild配置:inputResources: -名称:gitRepoResource集成:-名称:a2022世界杯阿根廷预选赛赛程rtifactory_integration -名称:npmPublishStep类型:NpmPublish配置:deployerRepo: npm-repo inputSteps: -名称:npmBuildStep outputResources: -名称:outputBuildInfo -名称:publishBuildInfoStep类型:PublishBuildInfo配置:forceXrayScan: true inputSteps: -名称:npmPublishStep outputResources: -名称:buildInfoResource
Bash和GoPublishModule步骤
一个Bash步骤输入到PublishBuildInfo步骤GoPublishModule的一步。
—名称:goPublishModulePipeline步骤:—名称:goPublishModuleStep类型:GoPublishModule配置:version: "v0.0. exe "${run_number}" targetRepository: go-repo self: true deps: ALL input2022世界杯阿根廷预选赛赛程Resources: -名称:gitRepoResource集成:-名称:artifactory_integration -名称:moduleTestStep类型:Bash配置:inputSteps: -名称:goPublishModuleStep执行:onExecute: - "echo '运行部分测试。'”- name: publishBuildInfoStep类型:PublishBuildInfo配置:environmentVariables: buildStepName: goPublishModuleStep inputSteps: - name: moduleTestStep outputResources: - name:2022世界杯阿根廷预选赛赛程 buildInfoResource
它是如何工作的
当你使用PublishBuildInfo它是管道中的原生步骤,在后台执行以下功能:
- jfrog rt config(用BuildInfo输出凭据配置jfrog CLI)
- Jfrog rt使用(指定要使用的配置凭据)
- Restore_run_files(从输入步骤复制输出和构建信息)
- Jfrog rt build-publish(发布构建信息)
- jfrog rt build-scan(如果forceXrayScan为true,触发扫描)
- write_output(如果autoPublishBuildInfo为true,则更新输出BuildInfo资源)
- Add_run_files(更新保存在运行状态下的构建信息)