在构建中提供动态变量

buildout.variables的Python项目详细描述


buildout.variables

在构建中提供动态变量。

一个例子是在一台机器上运行唯一的数据库名和无冲突的并行连续集成。

示例构建部分:

[variables]
recipe = buildout.variables
index-file = ${env:HOME}/jenkins-buildout-index.json
index-start = 0
index-key = ${env:JOB_NAME}
portbase = indexed 12{index}00
port = int portbase 0:100
port-instance = new port
jobname = str "${env:JOB_NAME}" [^a-zA-Z0-9] _

[env]
recipe = gocept.recipe.env

这里发生了几件事。

第一个是index-选项。它们为您提供了基于密钥并存储在共享文件中的唯一索引的可能性。这样,每个构建为每个使用的键获取相同的索引。在上面的示例中,键是job_name环境变量(例如由jenkins设置),索引从0开始。如果运行具有不同作业名称的构建,则它将获得下一个空闲索引。

portbase选项计算“12{index}00”格式(index=index)。因此 第一份工作是12000,第二份工作是12100,以此类推。

port选项声明一系列整数,这些整数可用于获取所需的唯一端口。port-instance选项使用它来声明一个端口,该端口可在整个构建过程中与${variables:port instance}一起使用,在本例中为12000。如果您申报了更多,那么在出现错误之前最多可以申报12099个。哪个变量 通过变量名的词序来确定哪个端口。

jobname选项接受${env:job_name},并在其上运行re.sub。在本例中,除了字母和数字之外的所有内容都被下划线替换。

除整数范围外,不能使用同一节中的其他动态变量。

学分

感谢legacy parts corporation和http://enquos.com最初为其创建此包。

更改日志

0.3-2013年3月15日

  • 首次正式发布。 [fschulze]

0.2-未发布

  • 修复持久索引。 [fschulze]

0.1-未发布

  • 初始版本。 [弗斯丘尔泽(弗洛里安·舒尔泽)]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java文件分块,获取长度字节   java嵌入式Tomcat不执行jsf页面   java我的数据库中有2个实体,但hibernate返回其中6个。   java如何基于逗号拆分字符串   java取消已经运行的CompletableFutures的预期模式是什么   java如何在informix中从另一个数据库复制表ddl和数据   为什么图片是黑色的?   java根据字符串数组中的单词筛选列表   Java8的集合。平行流有效吗?   Kotlin中的java静态内部类   java如何在GUI中生成一列字符串   javafx如何正确使用高对比度主题?   带空格的javascript Httpurlconnection参数   java如何设置GridBagLayout的约束   java如何在一个线程可能尚未初始化时关闭另一个线程   java将简单时间格式转换为特殊时间格式(hhmmt)   安卓/java阵列重复过滤器的问题   java在队列的链接实现下,入队和出队是如何工作的   java更新sql外键约束