2017-05-03 5 views
0

Ich habe Capistrano für meine Rails-Projektbereitstellung eingerichtet & Ich führe meine Komponententests von einer benutzerdefinierten Cap-Task wie unten aus.Capistrano-Testlauf fehlgeschlagen, aber Bereitstellung erfolgreich

namespace :deploy do 
    desc "Runs test before deploying, can't deploy unless they pass" 
    task :run_tests do 

    puts "--> Running tests, please wait ..." 
    unless system "bundle exec rake > log/capistrano.log 2>&1" #' > /dev/null' 
     puts "--> Tests failed. Run `cat log/capistrano.log` to see what went wrong." 
     exit 
    else 
     puts "--> Tests passed" 
    end 

    puts "--> All tests passed" 
    end 
end 

Wenn es eine Einheit Testfehler im System vorhanden ist, den Einsatz geht nicht weiter, sondern in jenkins die Build in blauer Farbe angezeigt wird. Das heißt, Build ist erfolgreich.

Wie kann ich jenkins mitteilen, dass der Build mit Fehlern beendet wurde?

Antwort

2

Sie laufen im Zweig "Tests fehlgeschlagen", der das Ruby-Programm mit einem Statuscode von Null (Erfolg!) Beendet.

Wenn Sie exit 1 (oder irgendetwas nicht Null) von Ruby, Jenkins wird wissen, dass etwas Schlimmes passiert ist.

Es gibt andere Möglichkeiten, "in Ruby" (wie raise) "erfolglos zu beenden", aber exit funktioniert genauso wie in bash.

Verwandte Themen