Come faccio a indirizzare uno specifico impegno SHA con Capistrano Deploy
-
06-09-2019 - |
Domanda
Mi chiedo come posso indirizzare una specifica impegnarsi SHA in Git per la distribuzione, utilizzando Capistrano? Dovrebbe essere qualcosa del tipo
cap deploy --version=<sha targeted>
Non riesco a trovare la risposta a questo dopo un sacco di ricerca.
Soluzione
Per Capistrano 2.9 fino a 3.0:
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Per le versioni precedenti di Capistrano , è possibile distribuire un particolare git commit / albero / ramo / tag in questo modo:
cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
In alcuni casi ci può essere una necessità di specificare l'ambiente come un argomento come bene. production
è solo un esempio.
cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Altri suggerimenti
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
Capistrano 3
Nel vostro deploy.rb
o file specifico stadi come config/deploy/production.rb
set :branch, ENV.fetch('REVISION', 'master')
Questo consente di puntare ad una specifica versione Git. Accetta uno SHA, ma anche tutto ciò che si risolve in una vera e propria revisione (per esempio git tag, tag annotated, o filiale).
Si usa sulla linea di comando impostando la variabile di ambiente REVISION
, per esempio.
bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993
bundle exec cap staging deploy REVISION=my-topic-branch
chiedere: ramo, 'master'
Prompt per l'ingresso, ma il valore predefinito è 'master' se si preme il ritorno.