継続的インテグレーション パイプラインの一部として、リポジトリから Python ホイール ファイルを作成し、それをカスタム devpi サーバーにアップロードして、そこからホイール ファイルでテストを実行しようとしています。
私が試した方法の 1 つは、setuptools を使用して wheel ファイルを 1 行でビルドしてアップロードすることですが、これは 404 Not Found メッセージを返します。
Windows で作業している場合、私の .pypirc は C:\Users\buildbot\.pypirc にあります
[distutils]
index-servers =
staging
[staging]
repository: http://pypi/root/staging
username: buildbot
password: 12345678
プロジェクトリポジトリのルートから、次のものをビルドしてアップロードしようとしました:
python.exe .\setup.py bdist_wheel upload --repository http://pypi/root/staging
ただし、ホイールは問題なく配置されてdist\proj-20141216.2.dev0-py2-none-any.whl
いますが、アップロードの手順は次のようになります。
実行中のアップロード C:\var\buildminion\build_proj-dev\build\dist\proj-20141216.2.dev0-py2-none-any.whl を送信中
http://pypi/root/staging
アップロードに失敗しました (404): 見つかりません
setuptools を実行register
すると、同様の結果が得られます。
カタツムリを登録しています
http://pypi/root/staging
サーバーの応答 (404): 見つかりません
ファイルを手動でアップロードできるため、devpiサーバーが正しく実行されていることがわかります
devpi use http://pypi/root/staging
devpi login buildbot --password 12345678
devpi upload dist\proj-20141216.2.dev0-py2-none-any.whl
setuptoolsupload
が機能しない理由はありますか?
また、.pypirc なしでこのアップロード機能を使用する (またはそのファイルを自動的に作成する) 方法はありますか? 将来的には、buildbot ミニオンを自動的にプロビジョニングできるようにしたいと考えています。これは、できれば避けたい余分な設定です。
これを機能させる方法がない場合は、devpi を使用して手動アップロードのスクリプトを作成できます。複数のプロジェクトの複数のバージョンで同じ CI コードが機能するようにしたいので、ホイール ファイル名と照合するコードを記述する必要がなければ簡単です。これが、 setuptools を使用することを好む理由ですupload
。pip
アップロード機能はありますか?