YAML模式
GradleBuild原生步骤的YAML模式如下:
- name:步骤:- name: type: GradleBuild配置:#继承bash的所有标签;//www.si-fil.com/confluence/display/JFROG/Bash gradleCommand: #required sourceLocation: #optional configFileLocation: #optional configFileName: #optional resolverRepo: #optional deployerRepo: #optional usesPlugin: #optional useWrapper: #optional forceXrayScan: #optional failOnScan: #optional;default_true autoPublishBuildInfo: #optional input2022世界杯阿根廷预选赛赛程Resources: - name: myGitRepo - name: artifactoryFileSpec outputResources: - name: myBuildInfo integrations: - name: myArtifactory执行:onStart: - echo "准备工作…" onSuccess: - echo "Job well done!" onFailure: - echo "嗯哦,出了问题" onComplete: #always - echo " cleanup up some stuff"
标签
名字
一个字母数字标识步骤的字符串(允许使用下划线)。
类型
必须GradleBuild
对于这一步,输入:
配置
指定步骤执行环境的所有配置选择。此步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
集成 |
必须指定Artifactory集成. | 要求 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定一个GitRepo资源.Gradle命令将在Git存储库中的文件上执行构建 还可以选择指定文件规范资源指定要复制到的文件 |
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
必须指定BuildInfo资源如果 如果 |
可能需要 |
此外,可以定义这些标签来支持步骤的本机操作:
从Bash派生的标签
标签 |
使用说明 |
必需的/可选 |
---|---|---|
gradleCommand |
指定与Gradle构建工具一起使用的选项命令行字符串。 | 要求 |
sourceLocation |
要构建的源文件相对于GitRepo存储库根目录的位置。如果没有指定路径,将使用存储库的根目录。 | 可选 |
resolverRepo |
用于解析依赖项的人工存储库。不能与…连用configFileName 和configFileLocation . |
可选 |
deployerRepo |
要部署到的人工存储库。不能与…连用configFileName 和configFileLocation . |
可选 |
usesPlugin |
设置为 不要与…一起使用 |
可选 |
useWrapper |
如果设置为 不要与…一起使用 |
可选 |
forceXrayScan |
当设置为 默认是 |
可选 |
failOnScan |
当设置为 默认是 |
可选 |
autoPublishBuildInfo |
当设置为 默认是 |
可选 |
configFileName |
Gradle配置文件。如果指定,则 的 只有在将此配置文件提交到源文件时才使用此选项。 |
可选 |
configFileLocation |
Gradle配置文件的位置。一个configFileName 还需要标签。通常存储在.jfrog 存储库中的目录。 |
可选 |
执行
声明要在执行前和执行后阶段执行的shell命令序列的集合:
标签 | 使用说明 | 必需的/可选 |
---|---|---|
onStart |
在本机操作之前执行的命令 | 可选 |
调用onSuccess |
成功完成时执行的命令 | 可选 |
onFailure |
完成失败时执行的命令 | 可选 |
onComplete |
在任何补全时执行的命令 | 可选 |
执行的操作onExecute
阶段是此步骤类型所固有的,并且不能被覆盖。
例子
下面的例子展示了几种配置GradleBuild步骤的方法。
使用默认值
GradleBuild最基本的形式。使用所有默认值。这一步将导航到inputResources数组中指定的repo的根目录,并运行指定的Gradle命令。2022世界杯阿根廷预选赛赛程
管道:—名称:gradleBuildPipeline步骤:—名称:gradleBuildStep类型:GradleBuild配置:gradleCommand: "build" inputResources:—名称:gitRepoResource集成:—名称:ar2022世界杯阿根廷预选赛赛程tifactory_integration
Source Location是Git Repo的子目录
一个更复杂的GradleBuild步骤,在这个步骤中,源代码位置是GitRepo的子目录(gradle-example-minimal),项目使用Gradle Artifactory Plugin。解析器和部署器存储库也已经配置好了,从jcenter解析并部署到gradle-local。
-名称:gradleBuildPipeline步骤:-名称:gradleBuildStep类型:GradleBuild配置:gradleCommand: "artifactoryPublish clean -b build. exe "gradle" sourceLocation: gradle-example-minimal deployerRepo: gradle-local resolverRepo: jcenter usesPlugin: true input2022世界杯阿根廷预选赛赛程Resources: - name: gitRepoResource集成:- name: artifactory_integration
使用配置文件
这个GradleBuild步骤类似于前面的例子,但是有一个作为gradle-example-minimal/gradle-art-config提交到存储库的配置文件。配置文件包含存储库和插件设置。
-名称:gradleBuildPipeline步骤:-名称:gradleBuildStep类型:GradleBuild配置:gradleCommand: "artifactoryPublish clean -b build. exe "gradle" sourceLocation: gradle-example-minimal configFileLocation:。configFileName: gradle-art-config input2022世界杯阿根廷预选赛赛程Resources:—name: gitRepoResource integration:—name: artifactory_integration
发布构建信息并触发x射线扫描
在本例中,构建信息作为GradleBuild步骤的一部分发布,并触发x射线扫描。
- name: gradleBuildPipeline步骤:- name: gradleBuildStep类型:GradleBuild配置:gradleccommand: "build" autoPublishBuildInfo: true forceXrayScan: true inputResources: - name: gitRepoResour2022世界杯阿根廷预选赛赛程ce集成:- name: artifactory_integration outputResources: - name: myBuildInfo
它是如何工作的
当你使用GradleBuild它是管道中的原生步骤,在后台执行以下功能:
- jfrog rt config(使用yaml中列出的集成配置jfrog CLI)
- jfrog rt gradle-config(如果在yaml中没有设置configFileName和configFileLocation)
- jfrog rt gradle $gradleCommand (gradle的主要构建命令)
- Add_run_variables(保存运行状态的信息,以供以后的步骤引用)
- Jfrog rt build-collect-env(收集构建环境,为构建发布做准备)
- jfrog rt build-publish(仅当autoppublishbuildinfo为true时发布构建)
- write_output(用发布的名称/编号更新BuildInfo输出资源)
- jfrog rt build-scan(如果forceXrayScan为true)
- Add_run_files(将构建信息添加到运行状态)