2016-07-25 12 views
6

Używam Jenkins 2.x z Jenkinsfile do uruchomienia potoku.Jak korzystać z wtyczki raportu na (PMD, PHPCPD, checkstyle, Jdepend ...) w potoku Jenkins?

Zbudowałem pracę przy użyciu Jenkinsfile i chcę wywołać Analysis Collector Plugin, dzięki czemu mogę wyświetlić raport.

Oto mój obecny Jenkinsfile:

#!groovy 

node { 

    stage 'Build ' 
    echo "My branch is: ${env.BRANCH_NAME}" 
    sh 'cd gitlist-PHP && ./gradlew clean build dist' 

    stage 'Report' 
    step([$class: 'JUnitResultArchiver', testResults: 'gitlist-PHP/build/logs/junit.xml']) 
    step([$class: 'hudson.plugins.checkstyle.CheckStylePublisher', checkstyle: 'gitlist-PHP/build/logs/phpcs.xml']) 
    step([$class: 'hudson.plugins.dry.DryPublisher', CopyPasteDetector: 'gitlist-PHP/build/logs/phpcpd.xml']) 

    stage 'mail' 
    mail body: 'project build successful', 
    from: '[email protected]', 
    replyTo: '[email protected]', 
    subject: 'project build successful', 
    to: '[email protected]' 
} 

Chcę powołać powołać Checkstyle, JUnit i wtyczki DRY z Jenkins. Jak skonfigurować te wtyczki w Jenkinsfile? Czy te wtyczki obsługują potoki?

+0

Edytuj pytanie i popraw stylizację. Twoje pytanie jest bardzo trudne do odczytania. – tisto

Odpowiedz

1

Wygląda na to, że wtyczki należy zmodyfikować, aby działały jako potokowe Steps, więc jeśli nie zostały zaktualizowane, nie działają.

Oto lista kompatybilnych wtyczek, które zostały zaktualizowane:
https://github.com/jenkinsci/pipeline-plugin/blob/master/COMPATIBILITY.md

A oto dokumentację o tym, jak trzeba wtyczek zostać zaktualizowane do obsługi transportu rurociągowego:
https://github.com/jenkinsci/pipeline-plugin/blob/master/DEVGUIDE.md

+1

Uwaga, wygląda na to, że plik zgodności jest aktualny, checkstyle jest obsługiwany jako ogólny krok kompilacji: step ([$ class: "CheckStylePublisher", canComputeNew: false, defaultEncoding: '', healthy: '', wzór: "**/checkstyle-result.xml", unHealthy: "']) działa dla mnie .. – code4cause

2

Poniższa konfiguracja działa dla mnie:

step([$class: 'CheckStylePublisher', pattern: 'target/scalastyle-result.xml, target/scala-2.11/scapegoat-report/scapegoat-scalastyle.xml']) 

Dla konfiguracji junit jest jeszcze prostsze:

junit 'target/test-reports/*.xml' 
0

To jak ja sobie z tym poradzić:

PM D

stage('PMD') { 
    steps { 
     sh 'vendor/bin/phpmd . xml build/phpmd.xml --reportfile build/logs/pmd.xml --exclude vendor/ || exit 0' 
     pmd canRunOnFailed: true, pattern: 'build/logs/pmd.xml' 
    } 
} 

PHPCPD

stage('Copy paste detection') { 
    steps { 
     sh 'vendor/bin/phpcpd --log-pmd build/logs/pmd-cpd.xml --exclude vendor . || exit 0' 
     dry canRunOnFailed: true, pattern: 'build/logs/pmd-cpd.xml' 
    } 
} 

Checkstyle

stage('Checkstyle') { 
    steps { 
     sh 'vendor/bin/phpcs --report=checkstyle --report-file=`pwd`/build/logs/checkstyle.xml --standard=PSR2 --extensions=php --ignore=autoload.php --ignore=vendor/ . || exit 0' 
     checkstyle pattern: 'build/logs/checkstyle.xml' 
    } 
} 

JDepend

stage('Software metrics') { 
    steps { 
     sh 'vendor/bin/pdepend --jdepend-xml=build/logs/jdepend.xml --jdepend-chart=build/pdepend/dependencies.svg --overview-pyramid=build/pdepend/overview-pyramid.svg --ignore=vendor .' 
    } 
} 

Pełny przykład można znaleźć tutaj: https://gist.github.com/Yuav/435f29cad03bf0006a85d31f2350f7b4

Powiązane problemy