3

私の会社では、CI サービスにBuildkiteを使用しています。CI サーバーがビルドをトリガーすると、ビルドからのすべてのログが Buildkite に送信され、UI から利用できるようになります。これは、ビルドがどのように失敗したかを確認できるため便利です。

Buildkite には、次のような形式のログから折りたたみ可能なグループを作成する機能があります。

--- Compiling
logs after this point will be in a collapsible group named 'Compiling'

--- Testing
logs after this point will be in a collapsible group named 'Testing'

これらの「グループ」を出力するカスタムログをgradleビルドに追加するにはどうすればよいですか? コンパイル/アセンブル用のグループ、単体テストの実行用などのグループが欲しいです。

ログを実行するタスクを追加し、それらを組み込みタスクの依存関係にすることを検討しましたが、それを行う方法や、それが一般的に良い考えであるかどうかはわかりません。

4

1 に答える 1

3

私は Gradle 2.12 を使用しており、Logging docから例を作成しました。この例では Android Studio も BuildKite も使用していませんが、基本的な質問には役立つと思います。

build.gradle典型的な Java プロジェクト用の単純なファイルがあるとします。

apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    testCompile 'junit:junit:4.11'
}

compileJava << { println "TRACER example log from compileJava" }
compileTestJava << { println "TRACER example log from compileTestJava" }

test << { println "TRACER example log from test" }

およびinit.gradleファイル:

useLogger(new CustomEventLogger())

class CustomEventLogger extends BuildAdapter implements TaskExecutionListener {

    public void beforeExecute(Task task) {
        if (task.name ==~ "compileJava") {
            println "--- Compiling"
        } else if (task.name == "test") {
            println "--- Testing"
        }
    }

    public void afterExecute(Task task, TaskState state) {}

    public void buildFinished(BuildResult result) {}
}

次に、このコマンドライン:

$ gradle -I init.gradle test

次の出力が得られます。

--- Compiling
TRACER example log from compileJava
TRACER example log from compileTestJava
--- Testing
TRACER example log from test
于 2016-05-04T20:38:36.437 に答える