web-dev-qa-db-ja.com

Jenkinsジョブのコンソール出力を検索します

私は100以上のビルドでJenkinsの仕事をしています。そのジョブのすべてのビルドを検索して、コンソール出力に特定の文字列を持つビルドを見つける必要があります。そのためのプラグインはありますか?それ、どうやったら出来るの?

12
user1550159

このようなタスクには、よく Jenkins Script Console を使用します。 Groovyプラグイン はスクリプトコンソールを提供しますが、定期的なメンテナンスにスクリプトコンソールを使用する場合は、 Scriptlerプラグイン を使用して管理することもできます。実行するスクリプト。

Jenkinsの管理->スクリプトコンソールから、groovyスクリプトを書くことができますジョブのビルドを反復処理して、一致する文字列を探します。

JOB_NAME = "My Job"
BUILD_STRING = "Hello, world"

def job = Jenkins.instance.items.find { it.name == JOB_NAME }
for (build in job.builds) {
  def log = build.log
  if (log.contains(BUILD_STRING)) {
    println "${job.name}: ${build.id}"
  }
}
13
Dave Bacher

追加の要件がない場合は、シェルで単純に実行します。例:

find $JENKINS_HOME/jobs/haystack -name log -exec grep -l needle {} \; \
    | sed 's|.*/\(.*\)/log|\1|'
7
jil

貴重なソリューションをお寄せいただきありがとうございます。少しの追加調査の後、Jenkinsにこれを行うプラグインがあることがわかりました。

https://wiki.jenkins-ci.org/display/JENKINS/Lucene-Search

これにより、コンソールの出力結果が保存され、ユーザーは検索ボックスで検索できます。

3
user1550159

Log Parser Plugin があります

ログ内の関心のある行を強調表示する(エラー、警告、情報)

ログをセクションに分割し、ログとそのセクション内のエラー、警告、情報行の数の概要を表示します。

エラーと警告の概要を完全なログのコンテキストにリンクし、ログ内の関心のある行を簡単に見つけられるようにします

ビルドページにエラーと警告の概要を表示する

古いログの場合、@ jilには、Linuxを使用していると仮定して答えがあります。

1

別のプラグインを放り出すために、 このブログ記事TextFinderプラグイン を指定しました。これにより、ワークスペースファイルまたはコンソール出力のいずれかでテキストを検索し、オーバーライドできますテキストが見つかった場合の成功/失敗としてのビルドステータス。

元のポスターは、テキストが見つかったときに何が起こるべきかを述べていませんが、ここに来たのはこの機能を探していたからです。

1
foz