質問

私は趣味のプロジェクトに取り組み始めています パイソン コードベースを使用しており、何らかの形式の継続的インテグレーションをセットアップしたいと考えています(つまり、チェックインが行われるたびに一連のテストケースを実行し、テストが失敗した場合には責任者に小言メールを送信します)と同様です。 クルーズコントロール または チームシティ.

ほとんどの場合、フックを使用してこれを行うことができることに気づきました VCS, ただし、そのためにはテストをバージョン管理サーバーと同じマシン上で実行する必要があり、これは私が望むほどエレガントではありません。誰かが、 パイソン コードベース?

役に立ちましたか?

解決

私たちは走る ビルドボット - Trac 仕事で。私のコードベースはまだリリースサイクルに含まれていないため、あまり使用していません。ただし、さまざまな環境 (OSX/Linux/Win) でテストを実行し、電子メールを送信します。それは Python で書かれています。

他のヒント

可能性の一つはハドソンだ。これは Java で書かれていますが、Python プロジェクトとの統合があります。

ハドソンはPythonを採用

ただし、私自身は試したことはありません。

(アップデート, 、9月2011年:商標権争いの後、ハドソンは次のように改名されました。 ジェンキンス.)

2 つ目は、Buildbot と Trac の統合です。統合の詳細については、 ビルドボット Web サイト. 。私の前職では、言及されているプラ​​グイン (tracbb) を作成して使用していました。このプラグインが行うことは、Trac 内から Buildbot を使用できるように、すべての Buildbot URL を書き換えることです。(http://example.com/tracbb).

Buildbot の本当に優れた点は、構成が Python で記述されていることです。独自の Python コードを構成に直接統合できます。特定のタスクを実行するための独自の BuildStep を作成することも非常に簡単です。

BuildSteps を使用して、SVN からソースを取得し、依存関係を取得し、テスト結果を WebDAV に公開しました。

ビルド結果とともにシグナルを送信できるように、X10 インターフェイスを作成しました。ビルドが失敗したとき、赤い溶岩ランプを点灯しました。ビルドが成功すると、緑色の溶岩ランプが点灯しました。良い時間です:-)

Jython 開発には Buildbot と Hudson の両方を使用します。どちらも便利ですが、長所と短所が異なります。

Buildbot の構成は純粋な Python であり、コツを掴めば非常に簡単です (最新情報については、epydoc で生成された API ドキュメントを参照してください)。Buildbot を使用すると、テスト以外のタスクの定義とテスターの配布が簡単になります。ただし、実際には個々のテストの概念はなく、テキスト、HTML、概要の出力のみであるため、マルチレベルのブラウズ可能なテスト出力などが必要な場合は、自分でビルドするか、Hudson を使用する必要があります。

Hudson は、全体的な結果からテスト スイートや個々のテストにドリルダウンするための優れたサポートを備えています。また、ビルド間のテスト出力を比較するのにも最適ですが、スレーブにも Java 環境が必要なため、分散 (マスター/スレーブ) の処理は比較的複雑になります。また、ハドソンは、マスターとスレーブ間の不安定なネットワーク リンクに対してあまり寛容ではありません。

したがって、両方のツールの利点を活用するために、Hudson の単一インスタンスを実行して一般的なテストの失敗を捕捉し、次に Buildbot でマルチプラットフォーム回帰を実行します。

私たちの例は次のとおりです。

私たちが使用しているのは 噛まれた これはtracと統合されています。そしてそれはPythonベースです。

TeamCity には Python がいくつかあります 統合.

しかし、TeamCity は次のとおりです。

  • オープンソースではない
  • 小さいわけではなく、むしろ機能が豊富です
  • 中小規模のチームは無料です。

私はとても良い経験をしています トラビス-CI より小さなコードベース向け。主な利点は次のとおりです。

  • セットアップは構成ファイルの画面の半分未満で完了します
  • 独自にインストールすることも、無料のホストされたバージョンを使用することもできます
  • Github リポジトリの半自動セットアップ
  • ウェブサイトにアカウントは必要ありません。github経由でログイン

いくつかの制限:

  • Python はファーストクラス言語としてサポートされていません (この記事の執筆時点では。ただし、pip と apt-get を使用して Python の依存関係をインストールできます。見る このチュートリアル)

  • コードは github でホストする必要があります (少なくとも公式バージョンを使用する場合)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top