Como posso segmentar um commit específico SHA com capistrano deploy
-
06-09-2019 - |
Pergunta
Eu estou querendo saber como posso atingir um commit específico SHA em Git para implantação, usando Capistrano? Deve ser algo como
cap deploy --version=<sha targeted>
Parece que não consegue encontrar a resposta para isso depois de muita pesquisa.
Solução
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Para versões mais antigas do Capistrano , você pode implantar um git commit particular / árvore / ramo / etiqueta ao fazer isso:
cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Em alguns casos, pode haver uma necessidade de especificar o meio ambiente como um argumento bem. production
é apenas um exemplo.
cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Outras dicas
O molf não funcionou para mim (usando Capistrano 2.11.2). Eu tive que usar "revisão" em vez de ramo, como este:
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Capistrano 3
Em seu deploy.rb
ou arquivo específico do palco como config/deploy/production.rb
set :branch, ENV.fetch('REVISION', 'master')
Isso permite que você aponte para uma revisão específica git. Ele aceita um SHA mas também qualquer coisa que resolve para uma revisão real (por exemplo git tag, tag anotada, ou sucursal).
Use-o na linha de comando, definindo a variável de ambiente REVISION
, por exemplo.
bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993
bundle exec cap staging deploy REVISION=my-topic-branch
perguntar: ramo, 'master'
pede a introdução, mas o padrão é 'mestre' se você pressionar retorno.