【发布时间】:2014-08-15 20:21:55
【问题描述】:
我正在使用 Git 存储库对我的应用程序进行版本控制。我的项目结构是这样的,我使用的是本地化到应用程序运行的每个环境的配置文件。这些本地配置文件包含诸如 SQL 连接字符串和其他与每个环境相关的信息(每个环境都有自己的SQL Server 数据库,包括 Teamcity 中的测试环境)。这些文件不是存储库的一部分,而是在创建新环境时新创建的。在这个范例中,TeamCity 是另一个环境,我为 TeamCity 创建了一个配置文件,用于为我的应用程序构建和运行 NUnit 测试。
我的问题是:如何将这个不受源代码控制的文件复制到 TeamCity 签出存储库的文件夹中? 在 TeamCity 开始构建我的应用程序之前,我该如何执行此操作?我确信这是可能的,因为我已经阅读了here,“应使用代理端结帐在每台机器上配置特定于机器的设置(如配置 SSL 通信等)。”我该怎么做呢?我无法从文档中找到直接的答案。
我读到this thread 提到了使用多个根的可能性,这意味着它将从公共存储库中提取公共源,并从具有受限访问权限的私有存储库中提取私有源,并且仅将访问权限授予 TeamCity。这是一个不错的解决方案,我可以看到这比每次运行构建时都有一个批处理文件或复制私有/本地文件的东西更容易维护,但由于某种原因,我不喜欢输入密码等。在存储库中。我不确定为什么我有这种偏见(它似乎很容易受到攻击),所以如果有人对这两种解决方案有任何经验,我很想听听他们的信息。我还想听听有关在受密码保护的存储库下存储敏感信息的意见。这是一种安全的做法吗?
感谢任何可以提供帮助的人。
PS:我查看了编辑 VCS 根页面和“服务器上的自定义克隆目录”设置,但我仍然不知道如何将文件复制到该目录。 TeamCity 的工作目录是改变还是保持不变?
【问题讨论】:
标签: git testing configuration continuous-integration teamcity