1

我的公司正在开发一个开源项目。因此,我们必须考虑两种不同的构建脚本设置。第一个是本地构建,由我们和社区使用。第二次构建在 CI 服务器上执行(我们使用团队城市)。

现在出现两个问题:

  1. 我们是否应该将特定于服务器的构建文件与本地构建文件放在同一个存储库中?
  2. 如果是,我们如何处理敏感数据?例如,NuGet API 密钥或随着每晚/每周构建增加的版本信息?

现在的情况:我们只将本地构建文件放在存储库中,并将合理的东西保存在父目录中。因此感觉有点笨拙(至少对我个人而言)。

我能想到的位置:在存储库中有一个local.buildserver.build文件。然后在团队城市中设置一个包含密码和版本号的系统变量。现在我不知道团队城市如何处理属性的可见性。当然,我们不希望我们的每个开发人员都可以访问或读取密码。

4

1 回答 1

1

我认为您对第二种选择的直觉很好。您可以在源代码控制中包含这两个脚本并将变量传递给server.build,或者您可以将整个server.build过程移动到 TeamCity 构建配置中。

版本号: TC 使用递增的构建计数器处理版本号,您可以在其前面添加任意的major.minor.etc。您可以在“常规设置”页面的 下配置内部版本号的格式Build Number Format。在我们的团队中,我们有一个构建参数 ,%version%我们用 major.minor 值填充它。然后我们的内部版本号格式设置为%version%.{0},这给了我们major.minor.build。该组合值可通过%system.build.number%变量获得。

敏感数据:您可以创建屏蔽敏感数据的构建参数。添加新参数并单击字段Edit中的按钮Spec。然后,您可以声明该参数应被视为密码(以及其他选项)。然后对该参数进行加密和混淆。您可以像使用任何其他构建参数一样使用它。

于 2013-01-22T19:02:42.387 回答