2016-09-16 12 views
4

ブラウザベースのテストが失敗した場合、ブラウザウィンドウのスクリーンショットを使用して問題をより詳しく説明します。しかし、パイプラインが失敗後に停止するので、私はそれらを私のパイプラインにアーカイブする方法を理解していません。 junit.xmlと同じですが、エラーの場合にも使用したいと思います。Jenkins Pipeline:ビルドに失敗した場合に成果物をアーカイブする方法は?

私がチェックしたところ、スクリーンショットは正しく生成されて保存されています。

私の定義では、この(無関係なものはほとんどトリミング)のようになります。

node { 
    stage('Build docker container') { 
     checkout([$class: 'GitSCM', ...]) 
     sh "docker build -t webapp ." 
    } 
    stage('test build') { 
     sh "mkdir -p rspec screenshots" 
     sh "docker run -v /var/jenkins_home/workspace/webapp/rspec/junit.xml:/myapp/junit.xml -v /var/jenkins_home/workspace/webapp/screenshots:/myapp/tmp/capybara -v webapp bundle exec rspec" 
    } 
    stage('Results') { 
     junit 'rspec/junit*.xml' 
     archive 'screenshots/*' 
    } 
} 

答えて

2

あなたがテストの失敗のパイプラインの失敗を避けるために、単純なJava try/catchを使用することができ、またはジェンキンスcatchErrorこのような:

node { 
    catchError { 
     // Tests that might fail... 
    } 
    // Archive your tests artifacts 
} 
1

hereからパイプラインの投稿セクションを使用できます。

pipeline { 
    agent any 
    stages { 
     stage('Build') { 
      ... 
     } 
     stage('Test') { 
      ... 
     } 
    } 

    post { 
     always { 
      archive 'build/libs/**/*.jar' 
     } 
    } 
} 
関連する問題