标签
名字
一个字母数字标识步骤的字符串(允许使用下划线)。名称的选择应准确地描述步骤的作用,例如:prov_test_env
表示提供测试环境的作业。步骤的名称在管道中必须是唯一的。
类型
必须Bash
对于这一步,输入:
配置
指定所有步骤执行环境的可选配置选择。
标签 |
使用说明 |
必需的/可选 |
---|---|---|
affinityGroup |
控制与节点关联的标签。具有相同affinityGroup的所有步骤将在同一节点上执行。这将允许在步骤之间共享状态。一个例子是在管道中对DockerBuild和DockerPush步骤具有相同的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配置:nodePool: my_node_pool environmentVariables: env1: value1 env2: default: value2 description: Example变量值:—value2—value3 allowCustom: false runtime: type: image image: auto: language: node versions:—"16" inputResources:—name: src execution: o2022世界杯阿根廷预选赛赛程nExecute:- 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世界杯阿根廷预选赛赛程资源:-名称:脚本类型:GitRepo配置:路径:jfrog/sample-script gitProvider: myGithub管道:-名称:test_stepTestReports步骤:-名称:testReport类型:Bash配置:inputResources: -名称:脚本执行:onExecute: - cd $res_script_resourcePath - ls - python -m py_compile calc.py - pip install——upgrade pip - hash -d pip - pip install pytest - pytest——verbose——junit-xml test-reports/results.xml test_calc.py onComplete: - save_tests $res_script_resourcePath/test-reports/results.xml
运行时
,environmentVariables
,inputSteps
标签
此示例使用运行时
,environmentVariables
,inputSteps
标签:
管道:-名称:api_steps步骤:-名称:api_steps类型:Bash配置:运行时:类型:主机环境变量:env1: value1 env2: value2执行:onExecute: - touch cachefile.txt - add_cache_files cachefile.txt my_file -名称:api_step_2类型:Bash配置:运行时:类型:主机inputSteps: -名称:api_steps执行:onExecute: - echo "step 2.."-名称:api_steps_ProjectAdmin步骤:-名称:api_steps_ProjectAdmin类型:Bash配置:运行时:类型:主机环境变量:env1: value1 env2: value2执行:onExecute: - touch cachefile.txt - add_cache_files cachefile.txt my_file -名称:api_steps_ProjectAdmin类型:Bash配置:运行时:类型:主机inputSteps: -名称:api_steps_ProjectAdmin执行:onExecute: - echo "step 2.."
affinityGroup
和优先级
标签
此示例使用affinityGroup
和优先级
标签:
- name: S_WF_019 steps: - name: S_WF_019_001类型:Bash执行:onStart: - add_run_variables step_1_var="step_1" onExecute: - echo "step 1正在运行" - name: S_WF_019_002类型:Bash配置:inputSteps: - name: S_WF_019_001 affinityGroup: ag_foo priority: 4执行:onStart: - echo "step_4_var - ${step_4_var}" - if ["$step_4_var" != "step_4"];然后退出1;- add_run_variables step_2_var="step_2" onExecute: - echo " step2 is running" - name: S_WF_019_003类型:Bash配置:inputSteps: - name: S_WF_019_001 affinityGroup: ag_foo priority: 1执行:onStart: - echo "step_1_var - ${step_1_var}" - if ["$step_1_var" != "step_1"];然后退出1;- add_run_variables step_3_var="step_3" onExecute: - echo " step3 is running" - name: S_WF_019_004类型:Bash配置:inputSteps: - name: S_WF_019_001 affinityGroup: ag_foo priority: 3执行: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 " step4 is running" - name: S_WF_019_005类型:Bash配置:inputSteps: - name: S_WF_019_002 - name: S_WF_019_003 - name: S_WF_019_004 affinityGroup: ag_foo priority: 4执行: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 " step5 is running" - name: S_WF_019_006类型:Bash配置:inputSteps: - name: S_WF_019_002 - name: S_WF_019_003 - name: S_WF_019_004 affinityGroup: ag_foo priority: 2执行:onStart: - echo "step_2_var - ${step_3_var}" - echo "step_4_var - ${step_3_var}" - echo "step_4_var - ${step_3_var}" - if ["$step_2_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_chronological steps:—name: Start type: Bash execution: onExecute:—echo“这是一个开始”。- name: Step1类型:Bash配置:时间顺序:true inputSteps: - name:开始执行:onExecute: - add_run_variables类型:Bash配置:时间顺序:true inputSteps: - name:开始执行:onExecute: - add_run_variables类型: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:结束类型:Bash配置:inputSteps: - name:步骤1 - name:Step2 - name: Step3执行:onExecute: - | echo "Step1: $ Step1 " echo "Step2: $ Step2 " echo "Step3: $ Step3 "
timeoutSeconds
标签
此示例使用timeoutSeconds
标签:
—名称:pipelines_S_Bash_0023步骤:—名称:S_Bash_0023类型:Bash配置:timeoutSeconds: 10执行:onExecute:—sleep 3m