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.

Foi útil?

Solução

Para Capistrano 2,9 até 3,0:

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

resposta

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top