0

継続的インテグレーション パイプラインの一部として、リポジトリから 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 を使用することを好む理由ですuploadpipアップロード機能はありますか?

4

1 に答える 1

4

問題は URL です。setup.py の場合、末尾の「/」が必要なので、構成を次のように変更します。

[distutils]
index-servers =
    staging

[staging]
repository: http://pypi/root/staging/
username: buildbot
password: 12345678

そして、おそらくプロジェクトを登録する必要がありますが、これは私にとってつまずきのポイントでした:

python.exe .\setup.py bdist_wheel register -r staging
python.exe .\setup.py bdist_wheel upload -r staging
于 2015-01-13T23:22:42.953 に答える