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





概述

本页描述了管道中环境变量的可用性和使用情况。


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

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

页面内容


标准环境变量

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

环境变量 描述
体系结构 节点架构,例如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 Pipelines中的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所属。默认值与步骤名相同。
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的节点名称(添加节点时用户配置)
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真正的

例子

单引号
例子 结果 评论
'This string '使用单引号"

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

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

“这个字符串\nis在下一行”

这个字符串
在下一行吗

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

例如:\ n\ \,\”

"This string uses \ttab"

这个字符串使用tab

多行字符串

多行字符串可以使用以下方法写入:

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

折叠式(>)

例子 结果 评论

foo: >

这是一个字符串。

另一个字符串。

一个。

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

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

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

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

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

你好世界

文字样式(|)

例子 结果 评论

foo: |

这是第一行。

这是第二条线。

这是第三条线。

这是第一行。

这是第二条线。

这是第三条线。

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

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

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

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

你好
世界

转义序列

YAML使用转义序列如下:

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

“10美元价格:\”

价格:10美元

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

'此字符串有内部'反刻度\ "

此字符串有内部的“反刻度”

反扁虱必须逃脱,因为它们是特殊处理的外壳。

“此字符串有一个反斜杠\\字符”

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


“这个字符串有几个特殊的\\字符,必要时被\ n转义”

这个字符串有$几个“特殊”字符
必要时逃跑”

在这个例子中:

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

环境变量配置

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

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

描述 描述环境变量的使用情况。页面中显示自定义运行配置面板 可选
时可赋给环境变量的值列表用户界面使用自定义运行配置 可选
allowCustom 确定是否允许用户使用不属于列表的自定义值.默认值为 可选
管线:—name: my_pipeline配置:environmentVariables: readOnly: env1: value1 env2: default: value1 description: env2描述取值:—value1—value2—value3 steps:—name: my_step type: Bash配置:environmentVariables: step_env1: default: value1 description: step env1描述取值:—value1—value2—value3 allowCustom: true step_env2: value2 execute: onExecute:—echo "test"

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


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




集成

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

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

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

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

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

Res_ _<集成标签名称>_<标签> . sh

例如,图像资源中指定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_{资源名}_{密钥名}例如,下面的代码在资源中创建三个属性模板

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

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

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

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


运行状态

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

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

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

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

$ printenv英雄超人$ printenv恶棍莱克斯卢瑟

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


管道状态

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

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

Add_pipeline_variables动物="狗"蔬菜="胡萝卜"

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

$ printenv动物狗$ printenv蔬菜胡萝卜

有关管道状态的详细信息,请参见创建有状态管道


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