2009-05-27 14 views

risposta

63

Per Capistrano 2.9 fino a 3.0:

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 

Per le versioni più vecchie di Capistrano, è possibile distribuire un particolare git commit/albero/ramo/tag in questo modo:

cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 

In alcuni casi potrebbe essere necessario specificare anche l'argomento Ambiente. production è solo un esempio.

cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 
+0

è lo SHA per uno specifico commit? –

+1

Il ramo verrà passato a git con "git checkout ", quindi un id di commit dovrebbe funzionare altrettanto bene come un id dell'albero, nome di ramo, ecc. – molf

+0

questa risposta non funziona per me, vedere la risposta di @eahanson sotto. –

17

la risposta di molf non ha funzionato per me (utilizzando capistrano 2.11.2). Ho dovuto usare "revisione" al posto del ramo, in questo modo:

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 
+0

Lavorare al 100% in 2.14.2 –

+3

Bene, 2.11.2 è sopra 2.9 e si utilizza la sintassi menzionata per sopra 2.9. Mi sto perdendo qualcosa ? –

8

Capistrano 3

Nel file deploy.rb o stadio-specifico come config/deploy/production.rb

set :branch, ENV.fetch('REVISION', 'master') 

Questo permette di puntare ad una specifica revisione git. Accetta uno SHA ma anche tutto ciò che si risolve in una vera revisione (ad esempio tag git, tag annotato o branch).

Utilizzarlo sulla riga di comando impostando la variabile di ambiente REVISION, ad es.

bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993 

bundle exec cap staging deploy REVISION=my-topic-branch 
+0

C'è un modo per passare il ramo come argomento della riga di comando? – marcovtwout

+0

Non conosco un modo per farlo. –

+0

@marcovtwout sì, è possibile, vedere la risposta aggiornata. – Dennis

0

chiedono: ramo, 'master'

richiede l'input, ma il valore predefinito è 'master' se si preme il ritorno.

Problemi correlati