Jenkins PipelineでJacocoを実行する方法があるかどうかを提案できますか?プラグインをダウンロードしましたが、パイプラインスクリプトヘルプである「パイプライン構文」でJacocoのオプションが表示されません。
このURLを参照しました: https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin jenkins jacocoパイプラインに関する情報はありません
これを行う方法の簡単な例をインターネットで探し回った後、私は最終的にJenkinsインスタンス内に「ステップ」ツールを見つけました。
インストールしたプラグインとモジュールに基づいて、Jenkinsfileパイプラインコードのスニペットを生成する方法を知っています。
長所と短所は、基本的なエントリが次のように見えることです。
stage('Build') {
steps {
sh './jenkins_build.sh'
junit '*/build/test-results/*.xml'
step( [ $class: 'JacocoPublisher' ] )
}
}
Jenkinsのドキュメントには、実際にいくつかのワンライナーの例を含む更新が必要です。
Jacocoパイプラインステップ構成では、次の形式を使用します。
step([$class: 'JacocoPublisher',
execPattern: 'target/*.exec',
classPattern: 'target/classes',
sourcePattern: 'src/main/Java',
exclusionPattern: 'src/test*'
])
または、宣言パイプラインのより単純な構文を使用します。
jacoco(
execPattern: 'target/*.exec',
classPattern: 'target/classes',
sourcePattern: 'src/main/Java',
exclusionPattern: 'src/test*'
)
JaCoCoパイプラインステップリファレンス で他のオプションを見つけることができます
Jacocoプラグイン2.2.1以降、jacoco(execPattern: 'target/jacoco.exec')
を使用できるようになりました
私は個人的に実行ごとに異なるJacocoファイルをいくつか持っていて、MavenとGradleの両方をサポートしたいので(build/
およびtarget/
ディレクトリ)、jacoco(execPattern: '**/*.exec')
を使用します。
パイプラインと互換性のあるプラグインのリスト を見ると、Jenkins JaCoCoプラグイン 互換性があった が見つかりますが、ドキュメントの更新はありません。ただし、 変更ログへの入力 :
バージョン2.1.0(2016年9月29日)
JENKINS-27120 JaCoCoパブリッシャーのワークフローサポートの追加
おそらく、その使用法はシンプルであり、他の多くのステップの使用法に似ているためです。
step([$class: 'JacocoPublisher', ...])
Jacoco jenkinsプラグインを使用する最良の方法は、実行可能ファイル(jacoco.exec)アプリケーション内で、パイプライン内のそのファイルの場所を指定します。マルチモジュールプロジェクトの場合、設定はわずかに異なりますが、参照してください: マルチモジュールMavenプロジェクトのJacocoコードカバレッジ
Jenkins Pipelineは次のようになります。
jacoco(
execPattern: '**/path_to_file/jacoco.exec',
classPattern: '**/coverage/**',
sourcePattern: '**/coverage/**',
inclusionPattern: '**/*.class'
)