持续集成——为开源项目构建脚本



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

现在出现了两个问题:

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

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

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

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

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

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

最新更新