标签
的名字
一个字母数字字符串(允许使用下划线),用于标识步骤。名称的选择应该准确地描述这个步骤的作用是什么?prov_test_env
表示提供测试环境的作业。步骤的名称在管道中必须是唯一的。
类型
必须Bash
对于这个步骤类型。
配置
指定所有步骤执行环境的可选配置选择。
标签 |
使用说明 |
必需的/可选 |
---|---|---|
affinityGroup |
控制与节点的关联的标签。具有相同affinityGroup的所有步骤将在同一节点上执行。这将允许在步骤之间共享状态。举个例子,DockerBuild和DockerPush步骤在一个Pipeline中拥有相同的affinityGroup,这样在DockerBuild步骤中构建的图像就可以被用于在DockerPush步骤中发布。 | 可选 |
优先级 |
当管道中有并行步骤或多个管道正在执行时,控制步骤的优先级。如果对运行的步骤数没有限制,它将确定在所有可以运行的步骤中,哪个步骤将首先运行。数字小的步骤将在数字大的步骤之前运行。例如,优先级10将在优先级100之前运行。默认优先级为9999。 优先级不适用于仍在等待输入完成或配置为在没有可用节点的节点池中运行的步骤。此外,如果有两个步骤准备运行,但只有一个可用节点,则优先级编号较低的步骤首先运行,而不管每个步骤属于哪个管道。 |
可选 |
timeoutSeconds |
时间限制,以秒为单位,为步骤完成。如果该步骤没有在给定的时间限制内完成,则该步骤将被迫进入失败的完成状态。 | 可选 |
nodePool |
指定执行该步骤的节点池。如果不指定节点池,则在默认节点池上执行步骤。在这里看到的了解节点池的更多信息 | 可选 |
按时间顺序排列 |
指定必须按时间顺序执行的步骤,以确保接收来自前面步骤的所有状态更新。 一步与 |
可选 |
environmentVariables |
以key:value格式分配任何环境变量及其值。在步骤定义中分配的所有环境变量仅在该步骤的执行范围内是活动的。 如果设置了以下变量,将使用它们:
|
可选 |
集成 |
此步骤将使用的集成集合。集成可以在不需要资源的情况下直接使用。 | 可选 |
inputSteps |
命名步骤的集合,其完成将触发此步骤的执行。 | 可选 |
input2022世界杯阿根廷预选赛赛程Resources |
一个命名为管道资源2022世界杯阿根廷预选赛赛程这一步将使用它作为输入。
|
可选 |
output2022世界杯阿根廷预选赛赛程Resources |
一个命名为管道资源2022世界杯阿根廷预选赛赛程将在此步骤中生成或更改。
|
可选 |
运行时 |
指定执行节点的运行时。 | 可选 |
执行
声明一组shell命令序列来执行不同的执行阶段:
标签 | 使用说明 | 必需的/可选 |
---|---|---|
onStart |
要预先执行的命令onExecute |
可选 |
onExecute |
该步骤执行的主要命令 | 可选 |
调用onSuccess |
成功完成时执行的命令onExecute |
可选 |
onFailure |
执行失败时要执行的命令onExecute |
可选 |
onComplete |
的任意补全时执行的命令onExecute |
可选 |
例子
这些例子的管道DSL是可以在这个存储库在JFrogGitHub帐户。
执行一个构建活动
这是一个如何使用Bash步骤执行构建活动的示例。
—name: build type: Bash configuration: nodePool: my_node_pool environmentVariables: env1: value1 env2: default: value2 description:示例变量值:—value2—value3 allowCustom: false runtime: type: image image: auto: language:节点版本:—16 inputResources:—name: src execution: onExec2022世界杯阿根廷预选赛赛程ute:- cd $ res_src_resourcePath npm安装mkdir - p testresults & & mkdir - p codecoverage - res_src_resourcePath / node_modules /美元。bin /摩卡——递归“测试/ * * / * .spec.js”- r mocha-junit-reporter——reporter-options mochaFile = testresults / testresults.xml - res_src_resourcePath / node_modules /美元。bin /伊斯坦布尔——include-all-sources盖根“路线”node_modules /摩卡/ bin / _mocha——- r spec-xunit-file——递归“测试/ * * / * .spec.js”——美元res_src_resourcePath cobertura伊斯坦布尔/ node_modules /。bin /报告——dir codecoverage - save_tests $res_src_resourcePath/testresults/testresults.xml onSuccess: - send_notification mySlack "build completed"
Python在bash步骤
这是一个如何在bash步骤中使用Python的示例。
2022世界杯阿根廷预选赛赛程resources:—name:脚本类型:GitRepo配置:路径:jfrog/sample-script gitProvider: myGithub pipeline:—name: test_stepTestReports步骤:—name: testReport类型:Bash配置:inputResources:—name:脚本执行:onExecute:—cd $res_script_resourcePath - ls - python -m py_compile calc.py - pip install——upgrade pip - hash -d pip - pip install pytest - py. shtest——verbose——junit-xml test-reports/results.xml test_calc.py onComplete: - save_tests $res_script_resourcePath/test-reports/results.xml
运行时
,environmentVariables
,inputSteps
标签
本例使用运行时
,environmentVariables
,inputSteps
标签:
pipeline:—name: api_steps steps:—name: api_steps type: Bash configuration: runtime: type: host environmentVariables: env1: value1 env2: value2 execution: onExecute: - touch cachefile.txt - add_cache_files cachefile.txt my_file - name: api_steps_2 type: Bash configuration: runtime: type: host inputSteps: - name: api_steps execute: onExecute: - echo "step 2.."—name: api_steps_ProjectAdmin steps:—name: api_steps_ProjectAdmin type: Bash configuration: runtime: type: host environmentVariables: env1: value1 env2: value2 execution: onExecute:—touch cachefile.txt—add_cache_files cachefile.txt my_file—name: api_steps_ProjectAdmin_2 type: Bash configuration: runtime: type: host inputSteps:—name: api_steps_ProjectAdmin execute: onExecute: - echo "step 2.."
affinityGroup
而且优先级
标签
本例使用affinityGroup
而且优先级
标签:
管道:—name: S_WF_019 steps:—name: S_WF_019_001 type: Bash执行:onStart:—add_run_variables step_1_var="step_1" onExecute:—echo "step 1 is running" - name: S_WF_019_002 type: Bash配置:inputSteps: - name: S_WF_019_001 affinityGroup: ag_foo priority: 4 execute: onStart: - echo "step_4_var - ${step_4_var}" - if ["$step_4_var" != "step_4"];然后退出1;fi - add_run_variables step_2_var="step_2" onExecute: - echo "step 2 is running" - name: S_WF_019_003 type: Bash configuration: inputSteps: - name: S_WF_019_001 affinityGroup: ag_foo priority: 1 execution: onStart: - echo "step_1_var - ${step_1_var}" - if ["$step_1_var" != "step_1"];然后退出1;fi - add_run_variables step_3_var="step_3" onExecute: - echo " step3 is running" - name: S_WF_019_004 type: Bash configuration: inputSteps: - name: S_WF_019_001 affinityGroup: ag_foo priority: 3 execution: onStart: - echo "step_3_var - ${step_3_var}" - if ["$step_3_var" != "step_3"];然后退出1;fi - add_run_variables step_4_var="step_4" onExecute: - echo "step 4 is running" - name: S_WF_019_005 type: Bash configuration: inputSteps: - name: S_WF_019_002 - name: S_WF_019_003 - name: S_WF_019_004 affinityGroup: ag_foo priority: 4 execution: onStart: - echo "step_6_var - ${step_6_var}" - if ["$step_6_var" != "step_6"];然后退出1;fi - add_run_variables step_5_var="step_5" onExecute: - echo "step 5 is running" - name: S_WF_019_006 type: Bash configuration: inputSteps: - name: S_WF_019_002 - name: S_WF_019_003 - name: S_WF_019_004 affinityGroup: ag_foo priority: 2 execution: onStart: - echo " step_var - ${step_var}" - echo "step_4_var - ${step_4_var}" - if ["$ step_var " != "step_2"];然后退出1; fi - if [ "$step_3_var" != "step_3" ]; then exit 1; fi - if [ "$step_4_var" != "step_4" ]; then exit 1; fi - add_run_variables step_6_var="step_6" onExecute: - echo "step 6 is running" - name: S_WF_019_007 type: Bash configuration: inputSteps: - name: S_WF_019_005 - name: S_WF_019_006 affinityGroup: ag_foo priority: 2 execution: onStart: - echo "step_1_var - ${step_1_var}" - echo "step_2_var - ${step_2_var}" - echo "step_3_var - ${step_3_var}" - echo "step_4_var - ${step_4_var}" - echo "step_5_var - ${step_5_var}" - echo "step_6_var - ${step_6_var}" - if [ "$step_1_var" != "step_1" ]; then exit 1; fi - if [ "$step_2_var" != "step_2" ]; then exit 1; fi - if [ "$step_3_var" != "step_3" ]; then exit 1; fi - if [ "$step_4_var" != "step_4" ]; then exit 1; fi - if [ "$step_5_var" != "step_5" ]; then exit 1; fi - if [ "$step_6_var" != "step_6" ]; then exit 1; fi onExecute: - echo "step 7 is running"
按时间顺序排列
标签
此示例使用按时间顺序排列
标签:
管道:—name: bash_chronicle steps:—name:启动类型:Bash执行:onExecute: - echo "It's a Start ."—name: Step1类型:Bash配置:序年:true inputSteps:—name:开始执行:onExecute:—add_run_variables Step1 =foo—name: Step2类型:Bash配置:序年:true inputSteps:—name:开始执行:onExecute:—add_run_variables Step2 =bar—name: Step3类型:Bash配置:序年:true inputSteps:—name:开始执行:onExecute:—add_run_variables Step3 =baz—name:完成类型:Bash配置:inputSteps:—name: Step1—name:Step2 - name: Step3执行:onExecute: - | echo "Step1: $ Step1 " echo "Step2: $ Step2 " echo "Step3: $ Step3 "
timeoutSeconds
标签
本例使用timeoutSeconds
标签:
管线:—name: pipelines_S_Bash_0023 steps:—name: S_Bash_0023 type: Bash configuration: timeoutSeconds: 10 execution: onExecute:—sleep 3m