我们有一个具有web角色和worker角色的Azure云服务。我们希望在Visual Studio Team Services中设置持续交付,在源代码签入时自动将构建推送到Azure。(QA环境)。源代码在Github中。最好的做法是不向Github签入秘密,所以我们只签入.csdef文件,而不签入.cscfg文件。
在VSTS中创建构建定义的最佳方式是什么,它将从其他位置拾取.cscfg文件并创建云服务包?在哪里存储.cscfg文件,以及如何配置构建?
发布于 2016-12-29 20:51:55
解决方案:最终使用自定义PowerShell脚本将.cscfg
文件中的配置值替换为VSTS变量。configuration PowerShell脚本根据发布管理管道中定义的环境运行。注意:定义为secret的变量必须作为参数传递给PowerShell脚本,因为PowerShell脚本无法使用$Env:
访问这些参数
发布于 2018-06-11 03:00:22
我们使用VSTS中提供的Replace tokens
任务
您还可以为字符串替换指定前缀和后缀。
然后,在ServiceConfiguration.Cloud.cscfg
中,您将使用定义的前缀和后缀来指示要替换的字符串。的值将取自您在VSTS中定义的Variables
。然后,将此设置的变量名称放在前缀和后缀之间。
将由Password
变量替换的ServiceConfiguration.Cloud.cscfg
文件示例。
<Setting name="SqlPassword" value="#{Password}#" />
这可用于转换/替换任何配置文件中的任何字符串。需要注意的一点是,在某些配置文件中,模式将验证特定设置的值。
例如云服务中ServiceConfiguration
的Certificate
设置。该值必须是有效的证书指纹(即任意数字0-9和/或字母A-F,小写和大写)。如果该值不满足方案要求,则此定义并构建的服务配置方案将失败。
为了解决这个问题,我们在我们的发行版中有另一个任务来替换证书。其前缀/后缀可以分别类似于abc
和def
。变量的名称将是001
。不幸的是,它不具有描述性,因为它必须是有效的证书指纹。
<Certificate name="MainSSL" thumbprint="abc001def" thumbprintAlgorithm="sha1" />
https://stackoverflow.com/questions/33114801
复制相似问题