2014-09-10 39 views
0

的外部文件我建立一個包裝上的Python 2.7.6 32位Windows 32構建蟒蛇輪,其中包括SVN:對詹金斯

唯一確定的一個包的一些組件的源是SVN「分享」。這家公司的慣例是使用svn:externals將它包含到你的項目中。

建立這個包的正常途徑是:

python setup.py bdist_wheel 

全部顯示正常我的工作站上(這裏我檢查了在TortoiseSVN的代碼),但是當我在詹金斯運行相同的過程中bdist_wheel過程做不包括通過svn:externals獲取的任何.py文件。

閱讀完文檔後,這似乎是因爲一個功能,該功能根據SVN跟蹤哪些文件來識別哪些腳本是軟件包的一部分。看起來,由於詹金斯檢查文件的結果,bdist_wheel看到我使用SVN並假定它知道如何確定哪些文件被跟蹤,但得到的答案是錯誤的。

我需要的是一種方法來試圖猜測我關心哪些文件停止bdist_wheel命令(其實我是想在項目中的每個.py文件被收錄,不管它是如何被帶入)

我試着用MANIFEST.in文件指定我需要的文件,但沒有奏效。

recursive-include externals *.py 

在這個例子中,「外部材料」是在我的源代碼樹中的頂級目錄包含了初始化 .py文件和一堆SVN的:external'd目錄。只有init文件可以在內置的whl文件中看到。

很不幸,這使得.py文件的行爲,如果他們的數據,在日誌中我可以看到這一點:

copying build\lib\externals\security\credentials.py -> build\bdist.win32\wheel\foopackage-0.0.4.data\..\externals\security 

這顯然不是一個真正的解決方案!

Pip,Virtualenv和所有相關工具都是最新的穩定版本。

回答

0

事實證明,這個問題是由Jenkins對自己的倉庫使用非常古老的SVN標準(1.4)引起的。切換到1.7可以糾正這種行爲。