云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

矩阵一步开始跨多个容器的多个并行构建过程,每个过程具有不同的设置。


页面内容

矩阵步骤的常见用例有:

  • 将一个大的测试套件分割成更小的单元,并并行执行它们,以减少总执行时间。
  • 针对环境变量的多个值或多个运行时映像进行测试。
  • 针对多个基本操作系统版本进行测试。

矩阵配置可以指定:

  • 多组环境变量定义
  • 多个运行时映像
  • 多个节点池
  • 多操作系统

Matrix步骤在每个指定平台上的每个环境变量集的每个指定运行时,以并行步骤的形式多次执行指定的shell脚本。例如,i如果矩阵步骤指定了3组环境变量和2个运行时映像,则它将总共运行6个steplets(运行时1 3次,运行时2 3次)。如果矩阵步骤还指定了2个节点池,则它将运行12个steplets。

矩阵步骤前可选地加上PreMatrix步骤为步骤组准备构建节点环境PostMatrix步骤聚合由步骤组产生的信息。有关更多信息,请参见使用矩阵步骤

矩阵步长仅适用于Linux节点。

使用

矩阵
管道:- name: 步骤:- name: 类型:矩阵stepMode: Bash配置:#继承自Bash;//www.si-fil.com/confluence/display/JFROG/Bash多节点:<布尔> #可选的,只需要如果steplets #需要执行单独的节点上执行:onStart: -回声“准备工作…”onExecute: #需要-回声“执行steplet step_name美元”——与“env1 = $ env1”——回声“env2 = $ env2”调用onSuccess: - echo”工作做得好!”onFailure:——回声“哦哦,事情错了”onComplete: #总是-回声“清理一些东西”stepletMultipliers: #可选的,如果用户nodePools只需要:#想要执行的步骤对windows #多个操作系统- ubuntu_18 ubuntu_16 environmentVariables: #可选的,如果用户只需要- env1: #想执行步骤对env2:两个#多个值的env - env1: abc env2: xyz运行时:#可选的,如果用户只需要类型:图像#想要执行的步骤对形象:#多个图像汽车:语言:版本:自定义:< Bash配置一样>图片:汽车:语言:版本:自定义:< Bash配置一样> fastFail: #默认false。如果指定了,矩阵# step在任何步长失败时失败,#除非在allowfails中指定allowfails: # optional,组合数组- nodePool:允许失败的# environmentVariables: env1: abc env2: xyz runtime: exclude: # optional,组合数组- nodePool:不执行的# environmentVariables: env1:一个env2:两个runtime:

标签

的名字

一个字母数字字符串(允许使用下划线),用于标识步骤。

类型

必须矩阵对于这个步骤类型。

stepmode

运行时操作系统模式。两者都有可能BashPowerShell.如果未指定,默认为Bash

配置

指定步骤的所有配置选择执行环境。该步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:

标签

使用说明

必需的/可选
inputStep

可以指定一个前矩阵序文步骤。

可选


此外,可以定义这些标记来支持该步骤的本机操作:

标签

使用说明

必需的/可选

多节点

当为true时,将要求在单独的节点上运行步骤。默认为false。

有关更多信息,请参见多节点矩阵

可选


stepletMultipliers

此外,可以定义这些标记来支持该步骤的本机操作:

标签

使用说明

必需的/可选
nodePools

节点池名称的集合。只有当多节点设置为true.指定后,该步骤将在每个已定义的运行时对于每组environmentVariables在每个节点池上。

参数中指定的节点池或默认节点池中执行该步骤配置部分。

例子
步骤:—name: step_1 type: Matrix stepMode: Bash configuration:多项:true stepletMultipliers: environmentVariables:—foo: foo - bar: bar nodePools:—gcp—aws . xml

确保在YAML中定义的节点池已经存在于管线中。

可选
environmentVariables

环境变量定义集的集合。每一组定义都将在每一个被定义的三元组的执行中使用运行时

如果没有定义,那么将为每个定义的步骤执行一个单步长运行时对每个指定的nodePools

可选
运行时

运行时定义的集合。该步骤将在每个定义的运行时中,在每个指定的运行时上执行nodePools,为每一套environmentVariables

方法中指定的运行时中执行每个步骤组配置部分。

可选
fastFail

当设置为真正的当任何一段步骤失败时,步骤失败,除非允许它失败allowFailures。

默认为false。

可选
allowFailures

的组合的集合nodepoolsenvironmentVariables,运行时允许在不终止整个矩阵步骤的情况下失败。只有当fastFail设置为真正的

可选
排除 的组合的集合nodepoolsenvironmentVariables,运行时它不会被执行。 可选


执行

声明在执行前和执行后阶段执行的shell命令序列集合:
标签 使用说明 必需的/可选
onStart 要预先执行的命令onExecute 可选
onExecute 该步骤执行的主要命令 可选
调用onSuccess 成功完成后执行的命令 可选
onFailure 在完成失败时执行的命令 可选
onComplete 在任何补全时执行的命令 可选

例子

这是一个例子如何使用Matrix步骤执行构建活动。

矩阵步骤示例
——名称:matrix_example类型:矩阵stepMode: Bash配置:inputSteps: -名称:matrix_fan_out_example stepletMultipliers: environmentVariables: # steplets设置环境变量——动物:狗# -设置1矿产:铜蔬菜:胡萝卜——动物:山羊# -设置2矿物:铁的蔬菜:西兰花——动物:蜥蜴# -设置3矿物:领导nodePools: - gcp aws运行时:# steplets运行时——类型:图像形象:汽车:语言:java版本:- 13.0 -类型:图像形象:汽车:language:节点版本:- 8.17.0 execute: onExecute: - echo "I am execution matrix steplet ${steplet_id}" - echo "Envs animal= $animal, mineral = $mineral, vegetable = $vegetable" - echo "Runtime image name: $step_image_name | Runtime image tag: $step_image_tag"

当运行时,上面的例子将在总共6个步骤中执行:3组环境变量中的每一组在2个运行时执行:

运行时 组1 组2 集3
java 13.0 狗,铜,胡萝卜 山羊,铁,西兰花

蜥蜴,铅,

节点8.17.0 狗,铜,胡萝卜 山羊,铁,西兰花

蜥蜴,铅,



  • 没有标签
版权所有©2022 JFrog Ltd.