0

3 つのオペレーティング システム (MacOSX、Windows、および Linux) で継続的インテグレーション環境をセットアップしたいと考えています。win32bit、win64bit、lin32bit、lin64bit、および mac の 5 つの異なるビルドをビルドする必要があります。ビルドごとに、次の手順を実行する必要があります。

-compile
-put some files in the binary folder
-make a 7z-archive of the binary folder
-upload the 7z-archive to a server

もちろん依存関係はあります。たとえば、コンパイルに失敗したときに 7z アーカイブを作成してアップロードしても意味がありません。

私の最初の試みは、スケジューラとビルダーの小さな階層システムを構築することでしたが、各ビルドの依存関係を処理する方法がわかりません:

私の計画 (Start_scheduler は svn コミットをリッスンしています):

\Start_scheduler, kicks off win_builder, lin_builder, and mac_builder
 \win_builder, compiles and uploads win32bit and win64bit
   -compile 32bit
   -put some files in the binary folder
   -make a 7z-archive of the binary folder
   -trigger upload_scheduler to upload IF 32bit compile was succesful
   -compile 64bit
   -put some files in the binary folder
   -make a 7z-archive of the binary folder
   -trigger upload_scheduler to upload IF 64bit compile was succesful
 \lin_builder, compiles and uploads lin32bit and lin64bit
   -compile 32bit
   -put some files in the binary folder
   -make a 7z-archive of the binary folder
   -trigger upload_scheduler to upload IF 32bit compile was succesful
   -compile 64bit
   -put some files in the binary folder
   -make a 7z-archive of the binary folder
   -trigger upload_scheduler to upload IF 64bit compile was succesful
 \mac_builder, compiles and uploads mac
   -compile
   -put some files in the binary folder
   -make a 7z-archive of the binary folder
   -triggerupload_scheduler to  upload IF compile was succesful
\upload_scheduler
 -upload 7z-archive to central server
 -send notification about new archive

基本的に私は2つの問題を抱えています。まず、コンパイルとアップロードの間の IF 依存関係を定義すると同時に、64 ビット コンパイルを 32 ビット コンパイルから独立させるにはどうすればよいですか。ビルド システムは、32 ビットが失敗した場合でも 64 ビットをコンパイルしようとする必要があります。次に、すべてのビルドで再利用できるように、upload_scheduler をパラメーター化することは可能ですか? ビルドごとに個別の upload_scheduler を維持する必要があるとしたら、面倒です。

4

3 に答える 3

0

Pythonの継続的インテグレーションシステムとして、Hudson(現在はJenkinsと呼ばれています)に勝るものはほとんどありません。「ハドソンパイソン」のためのグーグル。

于 2011-02-05T02:35:10.647 に答える
0

32 ビットと 64 ビットの両方のビルドに単一のビルダーを使用する代わりに、単一のビルドスレーブで実行される個別のプラットフォーム ビルドを使用できます。この場合、32 ビット ビルドは 64 ビット ビルドとは別にビルドされ、1 つのビルドが別のビルドに失敗することはありません。

アップロード スケジューラに関しては、TriggerableSchedulerを参照してください。

于 2011-03-08T20:35:59.460 に答える
0

このようなことは、Java 側の Ant と Cruise Control によって適切に処理されます。

PyAntは Python であなたを助けることができるでしょうか?

于 2011-02-04T21:19:30.900 に答える