从构建服务器

时间:2017-12-18 19:18:41

标签: git bamboo

我正在推动从bitbucket构建服务器(竹子)的后期构建

然后推送到artifactory然后在Octopus中创建版本。

每次我构建发布包时,都会包含.git文件夹。

在构建服务器构建并发布到artifactory和Octopus之前,是否有一种理智的方法来删除.git文件夹?

1 个答案:

答案 0 :(得分:2)

我认为问题在于你的构建过程主要(完全是?)一个打包过程并在源目录中“就地”运行。

这不是每个人都有的问题的原因,通常构建过程首先构建一个“目标”或“分发”目录,并采取所需的任何步骤,使其看起来像完全应该部署,然后打包分发目录而不是源目录。

这解决了很多问题。在编译语言中工作时,可能最大的一个是“我如何避免意外部署源文件”(相反,“我如何避免意外地将构建工件提交到源代码控制中”)。

但也许你的应用程序主要是HTML和javascript,而且你没有编译任何东西,所以似乎没有理由在源目录和分发目录之间进行分离。我仍然鼓励你考虑转向这种类型的构建,即使唯一的“构建步骤”是将所需的文件从源复制到分发目录。这有两个原因:

首先,它解决了眼前的问题。请注意.git目录可能只是最明显的症状。 (您现在可能已经或可能在将来找到您需要的其他git元数据文件 - 例如.gitignore,.gitattributes,... - 您可能也不希望那些已部署。)

其次,它为您在未来无缝添加更复杂的源到分发转换做好了准备。 (也许您决定缩小生产构建的资源。也许您决定使用Web捆绑包。也许您合并了更少的样式表。也许您开始使用基于模块的依赖管理系统......)

在硬币的另一面,删除你的git文件夹(无论你怎么做到这样“理智”)都可能有副作用。取决于构建作业的配置方式,但通常会将repo从一个构建保留到下一个构建以节省时间(不必从每个构建的原始repo中获取这么多)。

所有这一切,如果你想删除.git文件夹...那么使第一个构建步骤成为rm文件夹的脚本有什么问题?