現在実行中のビルドのテキストにアクセスできる組み込み変数はありますか?
currentBuild.log
、currentBuild.buildLog
のようなものを使ってみましたが、うまくいきませんでした。
実際には、_currentBuild.rawBuild.log
_以上(非推奨ではありません)currentBuild.rawBuild.getLog(100)
(最後の100行)を使用して可能です。参照: http://javadoc.jenkins-ci.org/hudson /model/Run.html#getLog-int-
ログを分析するための解決策をたくさん探しました。
rawBuild
は使用できませんでしたtee
を使用します。これは、前の手順を変更したくないため、またはログ全体をRAMにしたくないため、分析したいものではありませんでした。 (そして残念ながら私はそれをWindowsマシンで必要としました)ジェシー・グリックスの答えに触発された解決策を見つけました:
manager
- variableを使用すると、manager.logContains(regexp)
またはmanager.getLogMatcher(regexp)
を使用してログを分析できますmyTestString
が含まれていることを確認するだけで、manager.logContains('.*myTestString.*')
を呼び出すことができます。manager.getLogMatcher(regexp)
を使用できます残念ながら、ログ全体を分析する方法は見つかりませんでした(getLogMatcher
は最初に一致した行Matcherのみを返します)。だから私は現在、例えばログファイルに特別な文字列が含まれている頻度をカウントします。
現在はありません。 (currentBuild
のプロパティはSnippet Generator"グローバル変数に文書化されています。)
これは実装できますかなり簡単に実装できますが、巨大なビルドでは十分に拡張できません。 JENKINS-28119 は、私があなたの根本的なリクエストを推測しているものに対して、よりスケーラブルなソリューションを提供します。