¿Cómo se orienta una específica comprometo SHA con el despliegue Capistrano
-
06-09-2019 - |
Pregunta
Me pregunto cómo puedo apuntar a un determinado comprometerse SHA en Git para el despliegue, el uso de Capistrano? Debe ser algo así como
cap deploy --version=<sha targeted>
Parece que no puede encontrar la respuesta a esta después de un montón de búsqueda.
Solución
Para Capistrano 2,9 hasta 3,0:
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Para versiones anteriores de Capistrano , se puede implementar un idiota particular, se comprometen / árbol / rama / etiqueta al hacer esto:
cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
En algunos casos, puede haber una necesidad de especificar el medio ambiente como un argumento así. production
es sólo un ejemplo.
cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Otros consejos
La respuesta de molf no funcionó para mí (usando Capistrano 2.11.2). Tuve que usar "revisión" en lugar de rama, así:
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Capistrano 3
En su deploy.rb
o archivo de la etapa específica como config/deploy/production.rb
set :branch, ENV.fetch('REVISION', 'master')
Esto le permite apuntar a una revisión git específica. Acepta una SHA pero también cualquier cosa que se resuelve en una revisión real (por ejemplo git tag, etiqueta anotado, o rama).
Se usa en la línea de comandos mediante el establecimiento de la variable de entorno REVISION
, por ejemplo.
bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993
bundle exec cap staging deploy REVISION=my-topic-branch
preguntar: rama, 'maestro'
solicitudes de entrada pero pasará al 'maestro' si pulsa retorno.