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





概述

本页描述管道中环境变量的可用性和使用方法。


您可以自定义您的工作流 通过使用在运行时可用的环境变量。 例如,您的步骤可以根据管道名称和当前运行号构造文件名或构建ID。或者,您的步骤可以根据资源的状态执行不同的命令。

JFrog pipeline通过环境变量提供对管道和资源的有用内部信息的访问。2022世界杯阿根廷预选赛赛程pipeline还提供了几种简单的方法,可以在管道执行期间将自己的环境变量注入到运行时中。

页面内容


标准的环境变量

所有执行管道都可以使用这些环境变量。

环境变量 描述
体系结构 节点架构,例如x86_64
builder_api_token 令牌,用于在步骤执行期间调用管道API。内部使用,但用户可以访问。
current_script_section onStart / onExecute onComplete等等
JFROG_CLI_BUILD_NAME

如果没有在YML中设置为变量或添加为管道、运行或步骤变量,它将被设置为$pipeline_name。这在积累构建信息时使用。

JFROG_CLI_BUILD_NUMBER

如果没有将其设置为YML中的变量或添加为管道、运行或步骤变量,则将其设置为$run_number。这在积累构建信息时使用。

JFROG_CLI_BUILD_PROJECT

如果没有在YML中设置为变量或添加为管道、运行或步骤变量,则它将被设置为$project_key。这在累积或发布构建信息时使用。

operating_system step所在的操作系统,例如Ubuntu_20.04
路径 当前正在执行的运行时环境中PATH的值。
pipeline_name 当前正在执行的管道的名称字符串。
pipelines_api_url API的URL
project_id JFrog pipeline中的项目ID
project_key 项目的关键。如果项目是默认项目,则此值将为空。
project_name 项目名称
run_id 运行的内部唯一ID。
run_number 当前正在执行的运行的编号。
running_in_container 如果step在容器中运行,则为。如果在主机上运行,则为False。
shared_workspace

目录中所有步骤可用的目录的路径亲密团体可用于在步骤之间共享文件。

step_ < inputStepName > _statusName

这个环境变量在运行时自动可用,可以在任何步骤中使用。inputStepName是输入步骤的名称。这个环境变量对于获取任何输入步骤的状态非常有用。
例如,参见在条件工作流页面中使用step__statusName。

step_affinity_group 亲和性组步骤所属。默认值与步骤名相同。
step_id 当前执行步骤的内部唯一ID。
step_image_name 用于运行该步骤的Docker映像的名称。pipelines-docker.jfrog.io / jfrog / pipelines-u20node).
step_image_tag 用于运行该步骤的Docker映像的标记。
step_name 在YAML中指定的步骤的名称。
step_node_id 节点的内部唯一ID
step_node_name 用于运行步骤的节点名称(用户在添加节点时配置)
step_node_pool_name 运行该步骤的节点池名称(创建池时的用户配置)
step_platform 和操作系统一样。
step_runtime 设置为“image”或“host”
step_triggered_by_identity_name 如果由用户触发,则输入用户名。其他的空
step_triggered_by_resource_name 如果由资源触发,则为资源的名称。否则,该环境变量为空。
step_triggered_by_step_name 如果由另一个步骤触发,则步骤名称。其他的空
step_type YAML中字段中指定的步骤类型(例如,“Bash”、“DockerBuild”等)。
step_url 直接链接到步骤

保留环境变量

这些环境变量具有预定义的值,不能被重写。

环境变量 描述
custom_certs_dir 自定义证书的位置。
custom_certs_enabled 指示使用自定义证书。
no_verify_ssl 指示不验证SSL的步骤。
run_created_at 创建运行的时间。
step_build_plane_version 构建平面版本。
step_dependency_state_dir 存储输入/输出依赖关系信息的位置。
step_docker_container_name 运行步骤的容器的名称。
step_json_path 包含有关步骤的信息的JSON对象的路径。
step_namespace 管道的扩展名称空间.默认是jfrog
step_timeout_seconds 步骤在超时之前可以运行的总秒数。
step_tmp_dir 执行步骤时使用的临时目录。
steplet_id 当前正在执行的步组的内部惟一ID。
steplet_number

运行上下文中唯一的步列号。有用的矩阵有多个步的步骤。

例子
onExecute: - add_run_variables steplet_${steplet_number}_variable=${env1}

用户定义的环境变量

中定义的自定义环境变量配置部分的管道YAML文件。

管道

在管道中,环境变量可以在配置部分。这里声明的环境变量可用于管道中的所有步骤。

—name: my_pipeline configuration: environmentVariables: readOnly: env1: value1 env2: value2

步骤

方法中可以声明环境变量配置管道中步骤的部分。来自此源的环境变量仅对声明它们的步骤可用。

步骤:—name: step_1 type: Bash configuration: environmentVariables: env1: value1 env2: value2

YAML模式参考

在声明环境变量时,必须遵循YAML语法约定并正确地引用和转义值,以确保pipeline能够正确地解析它们。

一般来说,YAML字符串是Unicode,可以不加引号。然而在美国,使用特殊字符有一定的规则。下面的字符串需要引号:

  • 以一个特殊的字符开始,例如:, {, }, [, ], ,, &, *, #, ?, |, -, <, >, =, !, %, @, )
  • 以空白字符开始或结束
  • 看起来像一个数字或布尔值(1231.23真正的

例子

单引号
例子 结果 评论
'此字符串'使用单引号"

这个字符串'使用单引号'

  • 单引号允许在字符串中包含几乎所有字符。
  • 单引号不能解析转义代码。例如:"\n"作为字符串\n返回。
  • 使用两个单引号('')在单引号字符串中包含单引号。
'此字符串'使用双引号' ' 这个字符串"uses双引号"
'&此字符串以特殊字符开头,需要加引号' '&以特殊字符开头,需要加引号'
双引号
例子 结果 评论

“这个字符串在下一行”

这个字符串
是在下一行吗

双引号支持任何字符串和转义序列。

例如:\ n\ \,\”

"此字符串使用\ttab"

这个字符串使用tab

多行字符串

多行字符串可以使用:

  • 折叠方式:用大于号(>)表示,其中每个换行符都转换为一个空格。
  • 文字样式:用管道(|)表示,以保存换行。

折叠样式(>)

例子 结果 评论

foo: >

这是一个字符串。

另一个字符串。

一个。

这是一个字符串。另一个。一个。

折叠样式删除行尾字符,并用单行代替双行尾。这对于描述很有用。

  • 使用>-如果不希望在末尾附加换行符。

  • 使用>+如果您想在末尾附加换行符。

执行:
onExecute:
- >
回声“你好”
回声“世界”

你好世界

文字风格(|)

例子 结果 评论

foo: |

这是第一行。

这是第二行。

这是第三行。

这是第一行。

这是第二行。

这是第三行。

文字样式保留行尾字符。这在定义脚本操作时非常有用。

  • 使用|-如果不希望在末尾附加换行符。

  • 使用|+如果您想在末尾附加换行符。

执行:
onExecute:
- |
回声“你好”
回声“世界”

你好
世界

转义序列

YAML使用转义序列如下:

  • \ n是否用于表示新行
  • \ t是用来表示一个选项卡
  • \ \用来表示斜杠
  • Bash的风格“\”用于转义作为内容一部分且不应折叠的附加空格
  • 末尾的\用于表示一个继续标记。这对于将长字符串分解为多行而不引入不必要的空格非常有用
例子 结果 评论

“10美元价格:\”

价格:10美元

特殊字符必须用反斜杠转义。

'此字符串有内部\ '反勾\ "

这个字符串有内部的“反勾”

背蜱必须逃脱,因为它们被外壳特别处理。

'此字符串有反斜杠\\字符'

这个字符串有一个反斜杠\字符


"此字符串有\$几个'特殊\"字符\\,必要时\ n转义"

这个字符串有$几个“特殊”字符\是
逃是必要的”

在这个例子中:

  • 双引号括起整个字符串。这样做是为了利用YAML扩展\ n转换为换行符。
  • 除了单引号字符外,其他所有字符都使用反斜杠进行转义。
  • 单引号被视为字符,不需要转义。

环境变量配置

除了键-值语法之外,还可以在环境变量定义下使用以下属性来增强其配置。以下属性可用于在两者中声明的环境变量管道而且步骤配置部分。

财产 描述 必需的/可选
默认的 环境变量的默认值。 要求

描述 描述环境变量的使用情况。该说明显示在自定义运行配置面板 可选
时可分配给环境变量的值列表UI中使用自定义运行配置 可选
allowCustom 确定是否允许用户使用不属于列表的自定义值.默认值是 可选
pipeline:—name: my_pipeline configuration: environmentVariables: readOnly: env1: value1 env2: default: value1 description: env2描述值:—value1—value2—value3 steps:—name: my_step type: Bash configuration: environmentVariables: step_env1: default: value1 description: step env1描述值:—value1—value2—value3 allowCustom: true step_env2: value2 execution: onExecute: - echo "test"

当你使用自定义配置触发运行, UI使用YAML文件中的配置来控制用户的输入使用自定义配置运行面板:


在YAML中allowCustom是设置为真正的,您可以为该字段输入任何值来定义你自己的跑步价值。在上面的示例中,您可以为的输入自定义值step_env2,除了已经定义的值之外。注意,自定义值仅对特定的运行可用。




集成

使用集成的步骤可以通过环境变量访问集成的属性。环境变量的形式为:

int_ <集成名称> _ <标记>

对象的URL属性Artifactory集成命名myArtifactory通过一个环境变量:

$ printenv int_myArtifactory_url https://mycompany.com/artifactory/

您还可以通过使用集成的资源访问集成的属性。环境变量的形式为:

res_ < resource_name > _ <集成标签名称> _ <标记>

例如,一个图像资源中指定一个Artifactory集成注册表标签。您可以访问由Image资源使用的Artifactory集成的URL模板如下:

$ printenv res_myImage_registry_url https://mycompany.com/artifactory/

有关更多信息,请参见管道集成


2022世界杯阿根廷预选赛赛程

中指定资源的步骤input2022世界杯阿根廷预选赛赛程resources可以通过环境变量访问该资源的属性。环境变量的形式为:

res_ <资源名称> _ <标记>

例如,您可以访问imageName财产的图像资源模板通过一个环境变量:

$ printenv res_myImage_imageName jfrog.local:5000/alpine37

有些资源维2022世界杯阿根廷预选赛赛程护可以作为环境变量访问的附加属性。这些资源类型包括:

更多信息请参见管道资源2022世界杯阿根廷预选赛赛程

基于资源的状态

此外,您可以向中指定的资源添加自己的属性output2022世界杯阿根廷预选赛赛程resources使用write_output效用函数.这可以用来创造有状态的管道

可以将新附加的属性作为表单的环境变量访问res_{资源名称}_{键名}例如,下面的代码在资源中创建三个属性模板

sport="baseball" equipment="bat" field="diamond"

当在步骤中指定资源时inputsource,这些属性可以作为以下环境变量访问:

$ printenv res_myImage_baseball棒球$ printenv res_myImage_equipment bat $ printenv res_myImage_field钻石

有关运行状态的更多信息,请参见创建有状态的管道


运行状态

您的管道可以定义自己的环境变量,并将它们添加到管道的运行状态中。这些对于管道运行中的所有步骤都是可用的。

使用用于运行状态管理的实用函数向当前运行状态添加新的环境变量。例如,步骤执行块中的以下行:

hero="Superman" villain="Lex Luthor"

将创建两个环境变量,可用于管道运行的当前和未来所有步骤:

英雄超人反派莱克斯·卢瑟

有关运行状态的更多信息,请参见创建有状态的管道


管道状态

您的管道可以定义自己的环境变量,并将它们添加到管道状态中。这些对于管道的所有运行都是可用的。

使用用于管道状态管理的实用函数向当前运行状态添加新的环境变量。例如,步骤执行块中的以下行:

add_pipeline_variables动物=“狗”蔬菜=“胡萝卜”

将创建两个环境变量,可用于定义它们的管道的所有运行:

动物狗蔬菜胡萝卜

有关管道状态的更多信息,请参见创建有状态的管道


  • 没有标签
版权所有©2022 JFrog有限公司