長年にわたる開発プロジェクトには、大規模で複雑なインフラストラクチャがあります。 多くのビルドスクリプト、フック、および自己完結型ユーティリティは、最終的に多くの問題に変わります。 これを完全に回避することは困難ですが、起こりうるトラブルの数を減らすことは非常に可能です。 今日は、これを支援するツールについて説明します。
Buildbot? いいえ、聞いていません。
ハブには、このすばらしいツールキットへの参照はほとんどありません。 これは誰も使用しないということですか? まったくありません。
Chromium、Python、Blender、およびその他の多くの大規模プロジェクトは、buildbotを使用して構築され、リリースされます。
クロムプロジェクトの大きくて恐ろしい滝
これはどんな獣ですか?
主な機能に注目する価値があります。buildbotはフレームワークです。 誰かがこれをマイナスと考えるかもしれませんが、深刻なプロジェクトではこれは明確なプラスです。 結局のところ、何か適切なことをしたいのであれば、自分でやったほうが良いことは長い間知られています。
ビルドの方法と場所に関する指示を含む構成は、Pythonコードです。 だからこそ、あなたがこの言語に精通していることを願っています。
戦いに!
100回聞くよりも1回見る方が良いので、すぐに行動しましょう。
必要なもの:
- Pythonとそのdevパッケージ(ツイストされたビルド用)
- 仮想環境を作成するVirtualenv
- Git
仮想環境を作成する
mkdir -p buildbot cd buildbot virtualenv --no-site-packages sandbox source sandbox/bin/activate easy_install sqlalchemy==0.7.10 easy_install buildbot buildbot-slave
マスターサーバーを作成する
buildbot create-master master
デフォルト設定の名前を変更します
mv master/master.cfg.sample master/master.cfg
ウィザードを実行します
buildbot start master
ログを見て、すべてが正常に機能するかどうかを確認できます。
tail -f master/twistd.log
そして今、レジから逸脱することなく、スレーブを作成します
マスターの隣にスレーブを配置することは良い方法とは言えませんが、私たちの場合は許容されます
buildslave create-slave slave localhost:9989 example-slave pass
打ち上げ
buildslave start slave
スレーブは、隣に配置されたマスターのねじれたサーバーを誓います。 私たちは注意を払いません。
特別な欲求がある場合は、ログを見てすべてがどうなったかを確認できます
tail -f slave/twistd.log
すべてを正しければ、localhostの8010ポートにウェルカムページが表示されます。
確認する
ログイン ユーザー:pyflakes、パスワード:pyflakes。
localhost:8010 / builders / runtestsに移動すると、次のようなものが表示されます。
[Force Build]をクリックしてください
最初のビルドの準備ができました。 F5を押して、アセンブリページに移動します。 すべてのステップは緑色ですか? したがって、テストは成功しました。
特定のビルドステップの標準出力をクリックすると、コンソールの出力と、起動された内容、方法、場所に関する詳細な説明が表示されます。
終わり
以上で、buildbotの紹介は終わりです。 habrasocietyに希望がある場合は、喜んで話を続け、buildbotを実装するときに踏み込んだ複雑さや熊手について話します。