在Jenkins上构建一个包含svn:externals文件的python轮子



我正在Python 2.7.6 32位Windows 32 上构建一个包

包中某些组件的唯一确定来源是svn"share"。这家公司的常见做法是在项目中使用svn:externals。

构建此包的正常方法是:

python setup.py bdist_wheel

在我的工作站上(我在那里用TortoiseSVN签出了代码),一切看起来都很正常,但当我在Jenkins上运行相同的进程时,bdist_wheel进程不包括任何通过svn:externals来源的.py文件。

在阅读了文档之后,这似乎是因为有一个功能可以根据SVN跟踪的文件来识别哪些脚本是包的一部分。看来,由于Jenkins检查文件的方式,bdist_wheel看到我正在使用SVN,并假设它知道如何确定跟踪哪些文件,但得到的答案是错误的。

我需要的是一种方法来阻止bdist_wheel命令试图猜测我关心的文件(我实际上希望项目中的每个.py文件都包含在内,无论它是如何引入的)

我尝试使用MANIFEST.in文件指定我需要的文件,但没有成功。

recursive-include externals *.py

在本例中,"externals"是我的源树中的一个顶级目录,它包含一个init.py文件和一堆svn:external'd目录。在生成的whl文件中只能看到init文件。

不幸的是,这使得.py文件的行为就像它们是数据一样,在日志中我可以看到:

copying buildlibexternalssecuritycredentials.py -> buildbdist.win32wheelfoopackage-0.0.4.data..externalssecurity

这显然不是一个真正的解决方案!

Pip、Virtualenv和所有相关工具都是最新的稳定版本。

事实证明,这个问题是由Jenkins为自己的存储库使用非常旧的SVN标准(1.4)引起的。切换到1.7可纠正此行为。

相关内容

  • 没有找到相关文章

最新更新