为开源项目构建脚本

时间:2013-01-21 13:15:50

标签: continuous-integration

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

现在出现两个问题:

  1. 我们是否应该将服务器特定的构建文件放在与本地构建文件相同的存储库中?
  2. 如果是,我们如何处理敏感数据?例如,NuGet API密钥或每夜/每周构建增加的版本信息?
  3. 现在的情况:我们只将本地构建文件放在存储库中,并将合理的东西保存在父目录中。因此感觉有点笨拙(至少对我个人而言)。

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

1 个答案:

答案 0 :(得分:1)

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

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

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