Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 使用竹变量替换app.config中的值_Variables_Bamboo - Fatal编程技术网

Variables 使用竹变量替换app.config中的值

Variables 使用竹变量替换app.config中的值,variables,bamboo,Variables,Bamboo,我正在竹子上建造和准备可部署的人工制品。我想自动将竹中设置的变量注入到应用程序配置中 { "IsEncrypted": false, "Values": { "EMAIL_QUEUE_DEV": "${bamboo.some.variable1}", "EmailFrom_DEV": "${bamboo.some.variable2}" } } 我希望${bambon.some.variable1}和${bambon.some.variable2}被替换为等效的

我正在竹子上建造和准备可部署的人工制品。我想自动将竹中设置的变量注入到应用程序配置中

{
  "IsEncrypted": false,
  "Values": {
    "EMAIL_QUEUE_DEV": "${bamboo.some.variable1}",
    "EmailFrom_DEV": "${bamboo.some.variable2}"
    }
}

我希望${bambon.some.variable1}和${bambon.some.variable2}被替换为等效的竹变量值。

我处理这个问题的方法是使用脚本或命令运行一个可执行文件,该文件可以处理查找和替换。为此,您需要设置某种占位符文本以关闭:

对于你可以使用的windows。例如:


对于跨平台支持,您可以使用竹子内部的脚本。要执行此操作,请将perl可执行文件设置为竹子中的可执行命令,然后为任务类型选择命令。脚本如下所示:

您可以使用类似或的解决方案,并将
app.config
文件更改为使用环境变量:

-p "-i.bak" -e "s/\"EMAIL_QUEUE_DEV\": \"e_mail_queue_placeholder\"}\"\,/\"EMAIL_QUEUE_DEV\": \"${bamboo.some.variable1}\"/g" app.config
{
  "IsEncrypted": false,
  "Values": {
    "EMAIL_QUEUE_DEV": "${bamboo_some_variable1}",
    "EmailFrom_DEV": "${bamboo_some_variable2}"
    }
}

在这里,我们不使用形式为
${bambor.some.variable1}
的bambor变量(因为只有当bambor看到脚本时才会进行替换),而是使用它们的等效环境变量
${bambor\some\u variable1}
。这些都是竹子自动声明的。

我也在考虑这个问题,但解决方案的问题是——如果我添加了新变量,那么我还需要修改脚本以进行替换。我不想那样。相反,我想迭代所有的变量,如果在文件中找到等价的变量,用变量值替换它。它可以是内联或文件、shell/powershell或类似Python的脚本语言。您需要1)查询所有竹计划变量(env | grep bambon|),2)查看是否有与变量名匹配的占位符变量,和3)运行类似于上面的查找/替换命令。@user1696503除了Wesley Rolnick answer和comment之外:Bambol中的所有变量也可以作为环境变量使用,并且
env | grep Bambol
将打印所有变量(也可以在日志中找到)
{
  "IsEncrypted": false,
  "Values": {
    "EMAIL_QUEUE_DEV": "${bamboo_some_variable1}",
    "EmailFrom_DEV": "${bamboo_some_variable2}"
    }
}