标准环境变量
所有正在执行的管道都可以使用这些环境变量。
环境变量 | 描述 |
---|---|
体系结构 | 节点架构,例如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 | 如果步骤在容器中运行,则为True。如果在主机上运行,则为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文件。
管道
类中声明环境变量配置
部分。这里声明的环境变量可用于管道中的所有步骤。
—名称:my_pipeline配置:environmentVariables: readOnly: env1: value1 env2: value2
步骤
方法中声明环境变量配置
步骤在管道内的部分。来自此源的环境变量仅在声明它们的步骤中可用。
步骤:—name: step_1 type: Bash配置:environmentVariables: env1: value1 env2: value2
YAML模式参考
在声明环境变量时,遵循YAML语法约定并正确地引用和转义值以确保pipeline能够正确地解析它们是很重要的。
一般来说,YAML字符串是Unicode的,可以不加引号。然而在使用特殊字符时,需要遵循某些规则。以下字符串需要引号:
- 以特殊字符开头,例如:
:, {, }, [, ], ,, &, *, #, ?, |, -, <, >, =, !, %, @, )
- 以空白字符开始或结束
- 看起来像一个数字或布尔值(
123
,1.23
,真正的
,假
,零
)
例子
单引号
例子 | 结果 | 评论 |
---|---|---|
|
|
|
'这个字符串'使用双引号' ' |
这个字符串"使用双引号" |
|
'&这个字符串以一个特殊字符开头,需要引号' | '&以一个特殊字符开头,需要引号' |
双引号
例子 | 结果 | 评论 |
---|---|---|
|
|
双引号支持任何字符串和转义序列。 例如: |
|
|
多行字符串
多行字符串可以使用:
- 折叠方式:用大于号(>)表示,其中每个换行符转换为空格。
- 文字样式:用管道(|)表示,以保留换行符。
折叠样式(>)
例子 | 结果 | 评论 |
---|---|---|
|
|
折叠样式删除行尾字符,并用单行替换双行尾。这对描述很有用。
|
|
你好世界 |
文字风格(|)
例子 | 结果 | 评论 |
---|---|---|
|
|
文字样式保留行结束符。这在定义脚本操作时非常有用。
|
|
|
转义序列
YAML使用转义序列如下:
\ n
用来表示一条新线\ t
用于表示TAB\ \
表示斜杠- Bash的风格
“\”
用于转义作为内容一部分且不应折叠的额外空格 - 末尾的\用于表示延续标记。这对于将长字符串分成多行而不引入不必要的空白非常有用
例子 | 结果 | 评论 |
---|---|---|
|
|
特殊字符必须用反斜杠转义。 |
|
|
反引号必须被转义,因为它们被shell特殊处理。 |
|
|
|
|
|
在这个例子中:
|
环境变量配置
除了键值语法之外,还可以在环境变量定义下使用以下属性来增强其配置。以下属性可用于两者中声明的环境变量管道和步骤配置
部分。
财产 | 描述 | 必需的/可选 |
---|---|---|
默认的 |
环境变量的默认值。 | 要求 |
描述 |
描述环境变量的使用情况。显示在自定义运行配置面板. | 可选 |
值 |
时可分配给环境变量的值列表在UI中使用自定义运行配置. | 可选 |
allowCustom |
控件列表之外的自定义值是否允许用户使用值 .默认值为假 . |
可选 |
管道:—名称:my_pipeline配置:环境变量:readOnly: env1: value1 env2:默认:value1 description: env2描述值:—value1—value2—value3 steps:—名称:my_step类型:Bash配置:环境变量:step_env1:默认:value1描述:步骤env1描述值:—value1—value2—value3 allowCustom: true step_env2: value2执行:onExecute:—echo "test"
当你使用自定义配置触发运行, UI使用YAML文件中的配置来控制用户输入使用自定义配置运行面板:
在YAML中,如果allowCustom
设为真正的
,您可以为该字段输入任何值为运行定义自己的值。在上面的示例中,您可以为的输入自定义值step_env2,除了已经定义的值之外。请注意,自定义值仅对特定运行可用。
集成
使用集成的步骤可以通过环境变量访问集成的属性。环境变量的形式为:
int_ <集成名称> _ <标记>
例如,您可以访问一个的URL属性Artifactory集成命名myArtifactory
通过环境变量:
$ printenv int_myArtifactory_url https://mycompany.com/artifactory/
您还可以通过使用集成的资源访问集成的属性。环境变量的形式为:
Res_
例如,图像资源在其注册表
标签。您可以访问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 diamond
有关运行状态的详细信息,请参见创建有状态管道.
运行状态
您的管道可以定义自己的环境变量,并将它们添加到管道的运行状态。这些将对管道运行中的所有步骤可用。
使用运行状态管理的实用程序函数将新的环境变量添加到当前运行状态。例如,下面一行在一个步骤的执行块中:
add_run_variables英雄="Superman"反派="Lex Luthor"
将创建两个环境变量,可用于管道运行的当前和所有未来步骤:
英雄超人反派莱克斯·卢瑟
有关运行状态的详细信息,请参见创建有状态管道.
管道状态
您的管道可以定义自己的环境变量,并将它们添加到管道状态。这些将适用于该管道的所有运行。
使用用于管道状态管理的实用函数将新的环境变量添加到当前运行状态。例如,下面一行在一个步骤的执行块中:
Add_pipeline_variables动物="狗"蔬菜="胡萝卜"
将创建两个环境变量,可用于定义它们的管道的所有运行:
动物狗蔬菜胡萝卜
有关管道状态的详细信息,请参见创建有状态管道.