私は100以上のビルドでJenkinsの仕事をしています。そのジョブのすべてのビルドを検索して、コンソール出力に特定の文字列を持つビルドを見つける必要があります。そのためのプラグインはありますか?それ、どうやったら出来るの?
このようなタスクには、よく 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}"
}
}
追加の要件がない場合は、シェルで単純に実行します。例:
find $JENKINS_HOME/jobs/haystack -name log -exec grep -l needle {} \; \
| sed 's|.*/\(.*\)/log|\1|'
貴重なソリューションをお寄せいただきありがとうございます。少しの追加調査の後、Jenkinsにこれを行うプラグインがあることがわかりました。
https://wiki.jenkins-ci.org/display/JENKINS/Lucene-Search
これにより、コンソールの出力結果が保存され、ユーザーは検索ボックスで検索できます。
Log Parser Plugin があります
ログ内の関心のある行を強調表示する(エラー、警告、情報)
ログをセクションに分割し、ログとそのセクション内のエラー、警告、情報行の数の概要を表示します。
エラーと警告の概要を完全なログのコンテキストにリンクし、ログ内の関心のある行を簡単に見つけられるようにします
ビルドページにエラーと警告の概要を表示する
古いログの場合、@ jilには、Linuxを使用していると仮定して答えがあります。
別のプラグインを放り出すために、 このブログ記事 で TextFinderプラグイン を指定しました。これにより、ワークスペースファイルまたはコンソール出力のいずれかでテキストを検索し、オーバーライドできますテキストが見つかった場合の成功/失敗としてのビルドステータス。
元のポスターは、テキストが見つかったときに何が起こるべきかを述べていませんが、ここに来たのはこの機能を探していたからです。