17

現在実行中のビルドのテキストにアクセスできる組み込み変数はありますか?

のようなものを使ってみましたがcurrentBuild.logcurrentBuild.buildLogうまくいきませんでした。

4

4 に答える 4

17

実際には、 currentBuild.rawBuild.log(非推奨ではない) currentBuild.rawBuild.getLog(100)(最後の 100 行) を使用することも可能です。参照: http://javadoc.jenkins-ci.org/hudson/model/Run.html#getLog-int-

于 2016-07-18T18:57:03.370 に答える
10

ログを分析するための解決策をたくさん探しました。

  • rawBuild追加の承認なしでサンドボックスでスクリプトを実行したいので、使用できませんでした
  • tee前の手順を変更したくない、またはログ全体を RAM に保存したくないため (残念ながら、Windows マシンでそれが必要でした)、分析したい手順での使用は問題ありませんでした。

Jesse Glicksの回答に触発されたソリューションを見つけました:

  • my.jenkins.url/pipeline-syntax/globals の下で、 -variable を使用すると、またはmanagerを使用してログを分析できることがわかります。manager.logContains(regexp)manager.getLogMatcher(regexp)
  • したがって、ログに文字列が含まれていることを確認したい場合は、myTestString呼び出すことができますmanager.logContains('.*myTestString.*')
  • 最初に一致した行から情報を取得したい場合は、使用できますmanager.getLogMatcher(regexp)

残念ながら、ログ全体を分析する方法が見つかりませんでした (getLogMatcher一致する最初の行のマッチャーのみを返します)。そのため、現在、ログ ファイルに特別な文字列が含まれている頻度をカウントする方法はありません。

于 2016-10-05T12:18:51.263 に答える
3

現在ありません。(ちなみに、のプロパティはSnippet Generator » Global VariablescurrentBuildの下に記載されています。)

かなり簡単に実装できますが、大規模なビルドではうまく拡張できません。JENKINS-28119は、あなたの根本的な要求が推測しているものに対して、よりスケーラブルなソリューションを提供します。

于 2016-05-05T11:35:18.580 に答える