标准的环境变量
所有执行管道都可以使用这些环境变量。
环境变量 | 描述 |
---|---|
体系结构 | 节点架构,例如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_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,可以不加引号。然而在美国,使用特殊字符有一定的规则。下面的字符串需要引号:
- 以一个特殊的字符开始,例如:
:, {, }, [, ], ,, &, *, #, ?, |, -, <, >, =, !, %, @, )
- 以空白字符开始或结束
- 看起来像一个数字或布尔值(
123
,1.23
,真正的
,假
,零
)
例子
单引号
例子 | 结果 | 评论 |
---|---|---|
|
|
|
'此字符串'使用双引号' ' |
这个字符串"uses双引号" |
|
'&此字符串以特殊字符开头,需要加引号' | '&以特殊字符开头,需要加引号' |
双引号
例子 | 结果 | 评论 |
---|---|---|
|
|
双引号支持任何字符串和转义序列。 例如: |
|
|
多行字符串
多行字符串可以使用:
- 折叠方式:用大于号(>)表示,其中每个换行符都转换为一个空格。
- 文字样式:用管道(|)表示,以保存换行。
折叠样式(>)
例子 | 结果 | 评论 |
---|---|---|
|
|
折叠样式删除行尾字符,并用单行代替双行尾。这对于描述很有用。
|
|
你好世界 |
文字风格(|)
例子 | 结果 | 评论 |
---|---|---|
|
|
文字样式保留行尾字符。这在定义脚本操作时非常有用。
|
|
|
转义序列
YAML使用转义序列如下:
\ n
是否用于表示新行\ t
是用来表示一个选项卡\ \
用来表示斜杠- Bash的风格
“\”
用于转义作为内容一部分且不应折叠的附加空格 - 末尾的\用于表示一个继续标记。这对于将长字符串分解为多行而不引入不必要的空格非常有用
例子 | 结果 | 评论 |
---|---|---|
|
|
特殊字符必须用反斜杠转义。 |
|
|
背蜱必须逃脱,因为它们被外壳特别处理。 |
|
|
|
|
|
在这个例子中:
|
环境变量配置
除了键-值语法之外,还可以在环境变量定义下使用以下属性来增强其配置。以下属性可用于在两者中声明的环境变量管道而且步骤配置
部分。
财产 | 描述 | 必需的/可选 |
---|---|---|
默认的 |
环境变量的默认值。 | 要求 |
描述 |
描述环境变量的使用情况。该说明显示在自定义运行配置面板. | 可选 |
值 |
时可分配给环境变量的值列表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动物=“狗”蔬菜=“胡萝卜”
将创建两个环境变量,可用于定义它们的管道的所有运行:
动物狗蔬菜胡萝卜
有关管道状态的更多信息,请参见创建有状态的管道.