管道变量

管道变量可用于创建可重用的管道配置。要使用管道变量,你必须有启用管道和使用配置2.1或更高。

有两种类型的管道变量:

  • 管道值表示可以在整个配置中使用的管道的元数据。
  • 管道参数被输入了在声明管道变量参数在一个配置的顶级密钥。用户可以通过参数到他们的管道触发通过API管道的一个新的运行时。

管道值

管道值提供给所有管道配置,可以在没有先前的声明中使用。

描述
pipeline.id 一种全球唯一的ID代表为管道
pipeline.number 一个项目唯一的整数ID为管道
pipeline.project.git_url 在当前项目托管的URL。例如。https://github.com/circleci/circleci-docs
pipeline.project.type 在VCS提供的小写名称,例如“github上”,“到位桶”。
pipeline.git.tag 这是被推到触发管道混帐标记的名称。如果管道不是由标签触发,那么这是一个空字符串。
pipeline.git.branch 这是被推到触发管道混帐分支的名称。
pipeline.git.revision 这是正在修建的长(40个字符)的git SHA。
pipeline.git.base_revision 以前的git的版本

例如:

2.1职位建立搬运工人-图片circleci /节点:最新AUTH用户名mydockerhub用户密码$ DOCKERHUB_PASSWORD#背景/项目UI ENV-VAR参考环境CIRCLE_COMPARE_URL<< pipeline.project.git_url >> /比较/ << pipeline.git.base_revision >> << pipeline.git.revision >>working_directory的〜/主脚步-回声“这是管道ID << pipeline.id >>”-回声$ CIRCLE_COMPARE_URL

管道参数配置中

管道参数使用的声明参数在顶层关键.circleci / config.yml文件。

管道参数支持以下几种类型:

  • 布尔
  • 整数
  • 枚举

看到参数语法对于使用细节。

管道参数可以由值来参考和用作范围下一个配置可变pipeline.parameters

下面示出了例如具有两个流水线参数的配置(图像标记工作目录)中所定义的配置的顶部,并且随后在被引用的建立工作:

2.1参数图像标记类型默认最新”工作目录类型默认〜/主”职位建立搬运工人-图片circleci /节点:<< pipeline.parameters.image标签>>AUTH用户名mydockerhub用户密码$ DOCKERHUB_PASSWORD#背景/项目UI ENV-VAR参考环境IMAGETAG<< pipeline.parameters.image标签>>working_directory的<< pipeline.parameters.workingdir >>脚步-回声“用图片标签是$ {} IMAGETAG”-回声 “$(PWD)== << pipeline.parameters.workingdir >>”

传递参数当通过API触发管道

管道可以与特定的被触发参数使用API​​第2版端点值引发管道。这可以通过传递来完成参数在的JSON的包密钥POST身体。

注意:请注意,参数键在此通过POST请求秘密。

下面与所述参数的管道在上述的配置例子中描述的触发器的例子(注意:要触发经由所述参数必须在配置文件中被宣布为API管道时传递参数。)。

卷曲-u $ {CIRCLECI_TOKEN}:-X POST --header “内容类型:应用/ JSON” -d“{ “参数”:{ “工作目录”: “./myspecialdir”, “图像标签”:“4.80.2" }}” //www.drag240sx.com/api/v2/project/:project_slug/pipeline

管道参数的范围

管道参数只能在得到解决.circleci / config.yml在它们被声明文件。管道参数不是球体可供选择,包括球体在config.yml文件本地声明。这样做是因为访问管道范围的天体将打破封装并创建ORB和调用配置之间的硬依赖,可能危及确定性和脆弱性创造的表面积。

配置加工过程和参数作用域

处理阶段

配置处理发生在以下几个阶段:

  • 管道参数解析和类型检查
  • 管道参数被替换为在ORB声明
  • 宝珠进口

其余的配置被处理,元件参数都解决了,类型检查,和取代的。

元素参数范围

元件参数使用词法作用域,所以参数是它们在所定义的元件内的范围,例如一份工作,一个命令或执行。如果与参数的元素调用另一个元件用的参数,如在下面的例子中,内部元件不继承调用元件的范围。

2.1命令打印参数信息类型脚步-回声<< parameters.message >>职位猫文件参数文件类型脚步-打印信息打印<< parameters.file >>-猫<< parameters.file >>工作流程我的工作流程职位-猫文件文件的test.txt

尽管打印命令从猫文件名为工作,文件参数不会在打印范围内。这将确保所有参数总是绑定到一个有效的值,并设定可用参数总是已知的。

管道值范围

管道值,由CircleCI提供的管道范围的值(例如<< pipeline.number >>)总是在范围之内。

管道参数范围

其在配置中定义的管道参数始终在范围,有两个例外:

  • 管道参数不在范围内的其他管道参数的定义,所以他们不能互相依赖。
  • 管道参数不是在球体,甚至在线球体,为了防止数据泄露的主体范围。

有条件的工作流程

使用什么时候条款(或逆子句除非)工作流的声明下,具有truthy或falsy价值,以决定是否要运行的工作流程。Truthy / falsy值可以是布尔,数字和字符串。Falsy是任何的:假的,0,空字符串,空,大和NaN。一切将truthy。

该构建体的最常见的用途是使用管道参数作为值,允许API触发器来传递参数,以确定哪些工作流运行。

以下是使用管道参数的示例配置run_integration_tests驱动是否工作流程integration_tests会跑。

2.1参数run_integration_tests类型布尔默认工作流程2integration_tests什么时候<< pipeline.parameters.run_integration_tests >>职位-mytestjob职位mytestjob脚步-查看-...#作业步骤

上面示出的示例阻止工作流integration_tests被触发,除非它被显式调用当管道被触发用在以下POST身体:

{“参数”{“run_integration_tests”真正}}

什么时候键接受任何truthy或falsy价值,不只是管道参数,虽然管道参数将是主要利用这一特性,直到更多的实现。什么时候还具有逆子句除非,其反转感实性的条件。