23

Git から最新のコードを取得し、ビルドを作成し、いくつかの自動化された単体テストを実行するスクリプトを作成するように依頼されました。

Git と対話するための 2 つの組み込み Python モジュールがすぐに利用できることがわかりました:GitPythonlibgit2.

どのアプローチ/モジュールを使用すればよいですか?

4

6 に答える 6

41

より簡単な解決策は、Pythonsubprocessモジュールを使用して git を呼び出すことです。あなたの場合、これは最新のコードをプルしてビルドします:

import subprocess
subprocess.call(["git", "pull"])
subprocess.call(["make"])
subprocess.call(["make", "test"])

ドキュメント:

于 2012-06-20T06:33:24.223 に答える
21

私はイアン・ウェザビーに同意します。subprocess を使用して git を直接呼び出す必要があります。コマンドの出力に対して何らかのロジックを実行する必要がある場合は、次のサブプロセス呼び出し形式を使用します。

import subprocess
PIPE = subprocess.PIPE
branch = 'my_branch'

process = subprocess.Popen(['git', 'pull', branch], stdout=PIPE, stderr=PIPE)
stdoutput, stderroutput = process.communicate()

if 'fatal' in stdoutput:
    # Handle error case
else:
    # Success!
于 2012-06-20T08:37:16.263 に答える
3

EasyBuildでは、GitPythonに依存しており、うまく機能しています。

使用方法の例については、こちらを参照してください。

于 2012-06-20T08:38:22.317 に答える
-8

Linux または Mac を使用している場合、なぜこのタスクに Python を使用するのでしょうか? シェルスクリプトを書きます。

#!/bin/sh
set -e
git pull
make
./your_test #change this line to actually launch the thing that does your test
于 2012-06-20T06:53:04.780 に答える