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







您正在查看该页的旧版本。查看当前版本

与当前比较查看页面历史记录

«前版本25下一个”

概述

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


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

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

页面内容


标准环境变量

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

环境变量 描述

pipeline_name

的名字当前执行的管道的字符串。
run_number 当前正在执行的运行的编号。

run_id

运行的内部唯一ID。

step_name

的名字在YAML中指定的步骤。

step_id

当前执行步骤的内部唯一ID。

step_type

类型在YAML的字段中指定的步骤(例如,“Bash”,“DockerBuild”等)

step_image_name

用于运行该步骤的Docker映像的名称(例如。pipelines-docker.jfrog.io / jfrog / pipelines-u16node).

step_image_tag

用于运行该步骤的Docker映像的标签。

step_node_name

用于运行step的节点名称(添加节点时用户配置)

体系结构

节点架构,例如x86_64

step_node_id

节点的内部唯一ID

step_node_pool_name 执行该步骤的节点池名称(创建池时用户配置)。
project_name 项目名称
project_id 项目在JFrog Pipelines中的ID
project_key 项目的关键。如果项目是默认项目,则该参数为空。

step_url

直接链接到步骤

pipelines_api_url

API的URL

current_script_section

onStart / onExecute onComplete等等

operating_system

step所在的操作系统,例如Ubuntu_16.04

step_platform

一样操作系统

builder_api_token

用于在步骤执行期间调用管道API的令牌。内部使用,但用户可以访问。

step_triggered_by_resource_name

如果由资源触发,则的名字资源的。否则,此环境变量为空。

step_triggered_by_step_name

如果由另一个步骤触发,则步骤的名称。其他的空

step_triggered_by_identity_name

如果由用户触发,则用户名。其他的空

step_affinity_group

亲和组step所属。默认值与步骤名相同。

step_ <inputStepName> _statusName

这个环境变量在运行时自动可用,可以在任何步骤中使用。inputStepName输入步骤的名称。这个环境变量对于获取任何输入步骤的状态非常有用。
有关示例,请参见使用step_ < inputStepName > _statusName

running_in_container

如果step在容器中运行,则为。如果在主机上运行,则为False。

step_runtime

设置为“image”或“host”

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

路径

当前执行的运行时环境中的PATH值。


用户自定义环境变量

中定义的自定义环境变量配置部分的管道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: stepenv1描述取值:—value1—value2—value3 allowCustom: true step_env2: value2

当你使用自定义配置触发运行时,UI使用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蔬菜胡萝卜

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


  • 没有标签
版权所有©2023 JFrog Ltd。