YAML模式
GoBuild原生步骤的YAML模式如下:
GoBuild
管道:- name:步骤:- name: 类型:GoBuild配置:#继承所有的标签从bash;//www.si-fil.com/confluence/display/JFROG/Bash sourceLocation: # optional outputLocation: # optional outputFile: # optional resolverRepo: # optional repository: # optional goCommand: # optional integrations: - name: #可能需要inputResources: - 2022世界杯阿根廷预选赛赛程name: # required - name: # optional execution: onStart: - echo "Preparing for work…" onSuccess:onFailure: - echo "uh oh, something went wrong" onComplete: #always - echo "清理一些东西"
标签
的名字
一个字母数字字符串(允许使用下划线),用于标识步骤。
类型
必须GoBuild
对于这个步骤类型。
配置
指定步骤执行环境的所有配置选择。该步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
集成 |
指定一个Artifactory集成模块将在哪里发布。如果一个文件规范资源在input2022世界杯阿根廷预选赛赛程Resources 这是可选的。否则,它是必需的。 |
可能需要 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定GitRepo包含Go源文件的资源 也可以指定一个可选的文件规范资源它指定要复制到哪些文件 |
要求 可选 |
此外,可以定义这些标记来支持该步骤的本机操作:
从Bash派生的标记
标签 |
使用说明 |
必需的/可选 |
---|---|---|
sourceLocation |
Go源文件可用的位置,相对于GitRepo存储库的根目录。如果没有指定,默认是GitRepo存储库的根。 | 可选 |
outputLocation |
应该发布构建的Go模块的位置。 | 可选 |
outputFile |
包含Go命令输出的文件。默认的文件名是步骤的名称。 | 可选 |
resolverRepo |
用于解析依赖项的Artifactory存储库的名称。 | 可选 |
存储库 |
替代resolverRepo .只能指定其中一个选项。 |
可选 |
goCommand |
指定Go客户端要使用的选项的命令行字符串。 默认的: |
可选 |
执行
声明在执行前和执行后阶段执行的shell命令序列集合:
标签 | 使用说明 | 必需的/可选 |
---|---|---|
onStart |
在本机操作之前执行的命令 | 可选 |
调用onSuccess |
成功完成后执行的命令 | 可选 |
onFailure |
在完成失败时执行的命令 | 可选 |
onComplete |
在任何补全时执行的命令 | 可选 |
对象执行的操作onExecute
阶段是此步骤类型固有的,不能被覆盖。
例子
下面的示例展示如何配置GoBuild步骤。
全管道示例
- 此示例需要一个Artifactory集成和一个GitHub集成.
- 本例中的管道DSL是可以在这个存储库在JFrogGitHub帐户。
- 有关完整的教程,请参见管道示例:Go Build.
#这个配置文件是模板化的,这样可以很容易地自定义。值可以用值来提供。yml文件。有关更多信息,请参阅“管道示例:Go Build”快速入门。模板:true #需要本地模板yml资2022世界杯阿根廷预选赛赛程源:# GitRepo中的示例Go应用程序-名称:go_repo类型:GitRepo配置:路径:{{. values。repoPath}}分支:包括:main gitProvider: {{. values。gitProvider}} #发布的Go应用程序的构建信息- name: go_buildinfo类型:BuildInfo配置:sourceArtifactory: {{. values。- name: go_build_pipeline_example步骤:#从GitRepo构建Go示例应用程序。文档在//www.si-fil.com/confluence/display/JFROG/GoBuild -名称:build_go类型:GoBuild配置:sourceLocation:。resolverRepo: go-virtual noRegistry: true input2022世界杯阿根廷预选赛赛程Resources:—name: go_repo integrations:—name: {{. values。将Go示例应用二进制文件发布到artifactory。Docs在//www.si-fil.com/confluence/display/JFROG/GoPublishBinary - name: publish_go_binary type: gopubishbinary配置:inputSteps: - name: build_go targetRepository: go-local integrations: - name: {{. values。发布Go示例应用程序构建信息。Docs在//www.si-fil.com/confluence/display/JFROG/PublishBuildInfo - name: publish_build type: PublishBuildInfo配置:inputSteps: - name: publish_go_binary outputResources: - nam2022世界杯阿根廷预选赛赛程e: go_buildinfo
默认的位置
使用默认位置的GoBuild步骤。
GoBuild
管道:—name: goBuildPipeline步骤:—name: goBuildStep类型:GoBuild配置:inputResources:—name: gitRepoResource2022世界杯阿根廷预选赛赛程集成:—name: artifactory_integration
文件规范输入
一个带有FileSpec输入的GoBuild步骤,提供不在GitRepo和resolverRepo中的构建文件,并指定在解析依赖项时使用的Artifactory存储库。
GoBuild
管线:—name: goBuildPipeline步骤:—name: goBuildStep type: GoBuild configuration: resolverRepo: repo inputResources:—name2022世界杯阿根廷预选赛赛程: gitRepoResource—name: fileSpec . exe
Git Repo中的备用源位置
一个GoBuild步骤,在GitRepo中有一个可选的源位置和一个可选的Go命令用于构建。
GoBuild
pipeline:—name: goBuildPipeline steps:—name: goBuildStep type: GoBuild configuration: sourceLocation: "app/go" goCommand: "build -insecure -o output/outputFile" inputResou2022世界杯阿根廷预选赛赛程rces:—name: gitRepoResource integrations:—name: artifactory_integration . txt
工作原理
当你使用GoBuild管道中的本机步骤,它在后台执行以下功能:
- jfrog rt配置(如果没有输入集成,则使用输入文件pec中的Artifactory凭据配置jfrog CLI)
- jfrog rt use(设置当前Artifactory的默认配置)
- cp(如果有一个输入FileSpec,将这些文件复制到克隆的GitRepo的根目录)
- Jfrog rt go-config(配置存储库以解析依赖项)
- Jfrog rt go(建造)
- Add_run_variables(为以后的步骤保存关于此步骤的信息)
- Add_run_files(将输出和构建信息保存在运行状态,以便以后发布步骤)
- 收集环境变量