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 を維持する必要があるとしたら、面倒です。