Midnight Commanderのアセンブリ環境-続き

開始する



最初の部分では、Debian / Ubuntu用の新しいMidnight Commanderファイルマネージャーバイナリパッケージビルドサービスを紹介しました。 コメントは、環境自体の技術的な説明がないことを正しく指摘しており、コードが神の形になったらすぐに詳細を投稿することを約束しました。 2週間が経ち、機能を安定させ、コードをくしとめるために少し時間がかかりました(それでもひどいですが、意図したとおりに動作するようです)。



私は特にソースコードをトピックに含めません、それらの多くがあります、そして、私の意見では、記事は過負荷になります。 興味のある方は誰でもgooglecodeからダウンロードできます。



組立環境



アセンブリ環境は、いくつかのシェルスクリプトで構成されています。



次は、アセンブリ環境自体を構成するスクリプトです。




build-mc-from-git.sh



前述したように、これはビルド環境の最も重要な部分です。 リリースのアセンブル/再アセンブルとGITからの夜間スライスのアセンブルの2種類の操作を実行します。 リリースビルドが選択された場合、スクリプトは次のようになります。



ナイトスライスのアセンブリは、ソースがGITリポジトリから形成され、バージョンインクリメントコードが異なるという点でのみ異なります。 リポジトリのmasterブランチに変更がなかったことをスクリプトが検出すると、アセンブリが中断されます。



buildbot.sh



このスクリプトはbuild-mc-from-git.shを呼び出し、成功した場合はpiupartsで追加のバイナリパッケージチェックを行い、エラーがなければターゲットアセンブリプロセス(squeeze-i386、squeeze-amd64、natty-i386など)を開始します。 。)。 ビルドが成功するたびに、リポジトリの一時的な構造が更新されます。 すべての目標が正常に収集され、CRONタスク(mc-release-builds.shまたはmc-nightly-builds.sh)のいずれかによってbuildbot.shが呼び出された場合、リポジトリを更新するスクリプトが実行されます。 この時点で、APTサービス情報が更新され、リリースファイルが署名され、サーバーコピーが更新されます。



現在、8つのターゲットの完全なアセンブリサイクルには1時間以上かかります。 将来的には、rpmベースのディストリビューションのターゲットを拡張できるようになるでしょう(私が理解しているように、アップストリームは以前のビルドボットの通常の動作を復元していません)。 追加情報または実行可能なサポートは、 プロジェクトページで入手できます



All Articles