1. ホーム
  2. python

[解決済み] Pythonのための "きれいな "継続的インテグレーション

2022-09-01 05:42:09

質問

ちょっと...無駄な質問なのですが、BuildBotの出力は特に見栄えは良くないのですが...。

例えば、比較すると...

...その他 ビルドボット はどちらかというと古風に見えますが

私は現在 Hudson で遊んでいますが、これは非常に Java 中心です(ただし このガイド で、BuildBot よりもセットアップが簡単で、より多くの情報を得られることがわかりました)。

基本的に:Pythonを対象とした継続的インテグレーションシステムで、多くの光沢のあるグラフや同類のものを生成するものはありますか?


更新しました。 この時点から、JenkinsプロジェクトがHudsonに代わってコミュニティ版パッケージとして使用されるようになりました。オリジナルの作者もこのプロジェクトに移っています。Jenkins は現在、Ubuntu/Debian、RedHat/Fedora/CentOS などで標準パッケージとなっています。以下の更新でも基本的に正しいです。で行う起点となるのは Jenkins は異なります。

更新しました。 いくつかの代替品を試した結果、私はHudsonにこだわろうと思います。 整合性 はシンプルでよかったのですが、かなり制限されています。私が思うに ビルドボット は、私が使っていたように1台のマシンですべてを実行するのではなく、多数のビルドスレーブを持つのに適していると思います。

Pythonプロジェクト用にHudsonをセットアップするのはとても簡単でした。

  • Hudson を以下からダウンロードします。 http://hudson-ci.org/
  • で実行します。 java -jar hudson.war
  • のデフォルトアドレスで Web インターフェイスを開きます。 http://localhost:8080
  • ハドソンの管理]、[プラグイン]、["アップデート"または同様のものをクリックします。
  • Gitプラグインをインストールします。 git のパスを設定する必要がありました。)
  • 新しいプロジェクトを作成し、リポジトリ、SCMポーリング間隔などを入力します。
  • インストール nosetests 経由 easy_install まだの場合は
  • ビルドのステップで nosetests --with-xunit --verbose
  • JUnitテスト結果レポートを発行する」をチェックし、「テストレポートXML」を **/nosetests.xml

以上で完了です。メール通知の設定を行い プラグイン は見てみる価値があります。私が現在Pythonのプロジェクトで使っているものもいくつかあります。

  • SLOCCount プラグイン をインストールして、コードの行数を数える(そしてそれをグラフ化する!)必要があります。 sloccount を別途インストールする必要があります。
  • 違反 で PyLint の出力を解析します(警告のしきい値を設定したり、各ビルドでの違反数をグラフ化したりできます)。
  • について は coverage.py の出力をパースすることができます。Nosetest は、テストを実行しながらカバレッジを収集することができます。 nosetests --with-coverage (を使って、テストを実行しながらカバレッジを集めることができます(これは出力を **/coverage.xml )

どのように解決するのですか?

あなたは、以下のものをチェックアウトしたいと思うかもしれません。 Xunit 出力プラグイン . このコマンドで、ユニットテストやカバレッジチェックを実行させることができます。

nosetests --with-xunit --enable-cover

Jenkinsを使う場合、あるいはJUnitのテストレポートをサポートしている他のCIサーバを使いたい場合に役立つと思います。

同様に、pylintの出力は 違反プラグイン