2017-08-10 1 views
0

Capistrano v2 hatte zwei hilfreiche Aufgaben: cap deploy:update_code würde eine vollständige Bereitstellung in ein neues Verzeichnis releases/ tun, aber nicht den Symbollink current ändern oder den Server starten/neustarten (damit der Server die aktuelle Version ohne Unterbrechung weiter ausführt). Und cap deploy:update tat die gleiche Sache plus das Ändern des current symlink, aber startete nicht den/den Server neu. Diese waren nützlich, um Probleme z. mit Asset-Kompilierung, bevor Sie eine tatsächliche Bereitstellung durchführen.Wie kann ich bereitstellen, aber nicht symlink/neu starten mit Capistrano 3?

Diese zwei "Update" Aufgaben sind in Capistrano v3 verschwunden. Gibt es eine gleichwertige Möglichkeit, eine vollständige Bereitstellung durchzuführen, ohne den Symlink current zu ändern oder den Server neu zu starten?

Antwort

2

Eine benutzerdefinierte Aufgabenliste sollte es tun:

task :deploy_without_symlink do 
    set(:deploying, true) 
    %w{ starting started 
     updating updated }.each do |task| 
    invoke "deploy:#{task}" 
    end 
end 

Sie den Code hier sehen kann: https://github.com/capistrano/capistrano/blob/master/lib/capistrano/tasks/framework.rake#L58 zu sehen, was Auslöser bereitstellen. Und die Publishing-Aufgabe per https://github.com/capistrano/capistrano/blob/master/lib/capistrano/tasks/deploy.rake#L38 ändert die Symlinks. Indem Sie alles danach weglassen, bekommen Sie, wonach Sie suchen.

Verwandte Themen